.ops-hub-launcher,.ops-hub-dialog,.ops-hub-toast{--oh-bg:#fffdf8;--oh-ink:#243c31;--oh-muted:#687264;--oh-line:#deded1;--oh-soft:#f1eee5;--oh-accent:#ad442c;--oh-contrast:#fffdf8;color:var(--oh-ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;font-size:14px;line-height:1.65;box-sizing:border-box}
html[data-theme=dark] .ops-hub-launcher,html[data-theme=dark] .ops-hub-dialog,html[data-theme=dark] .ops-hub-toast{--oh-bg:#1e3029;--oh-ink:#f1eee3;--oh-muted:#b0bcac;--oh-line:#415348;--oh-soft:#293d33;--oh-accent:#ef9c80;--oh-contrast:#251c15;color-scheme:dark}
.ops-hub-launcher[hidden],.ops-hub-badge[hidden],.ops-hub-toast[hidden]{display:none!important}
.ops-hub-launcher{position:fixed;right:24px;bottom:24px;z-index:380;display:flex;align-items:center;gap:9px;min-height:48px;padding:9px 16px;border:1px solid var(--oh-line);border-radius:50px;background:var(--oh-bg);box-shadow:0 4px 22px #182c2220;cursor:pointer;transition:transform .15s ease}
.ops-hub-launcher:hover{transform:translateY(-2px)}.ops-hub-bell{font-size:22px;line-height:1}.ops-hub-launch-label{font-size:12px;font-weight:650;letter-spacing:.03em}.ops-hub-badge{min-width:22px;min-height:22px;padding:1px 5px;background:var(--oh-accent);color:var(--oh-contrast);border-radius:20px;font-size:11px;font-weight:700;text-align:center}
.ops-hub-dialog{position:fixed;left:auto;top:auto;right:24px;bottom:24px;margin:0;padding:0;width:min(440px,calc(100vw - 32px));max-width:calc(100vw - 32px);height:min(760px,calc(100dvh - 48px));max-height:calc(100dvh - 48px);border:1px solid var(--oh-line);border-radius:16px;background:var(--oh-bg);box-shadow:0 12px 50px #10291c35;overflow:hidden}
.ops-hub-dialog[open]{display:flex;flex-direction:column}.ops-hub-dialog::backdrop{background:#14251c65;backdrop-filter:blur(2px)}.ops-hub-dialog *,.ops-hub-toast *{box-sizing:border-box}.ops-hub-dialog button,.ops-hub-dialog input,.ops-hub-dialog textarea{font:inherit}.ops-hub-dialog h2,.ops-hub-dialog h3,.ops-hub-dialog h4,.ops-hub-dialog p{margin:0}
.ops-hub-head{display:flex;justify-content:space-between;align-items:center;padding:19px 20px 12px;gap:12px}.ops-hub-head h2{font:700 22px/1.4 "Noto Serif SC","Songti SC",serif;letter-spacing:.04em}.ops-hub-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:7px 12px;border:1px solid var(--oh-line);border-radius:8px;background:var(--oh-bg);color:var(--oh-ink);text-decoration:none;font-size:12px!important;line-height:1.5;cursor:pointer;touch-action:manipulation;overflow-wrap:anywhere}.ops-hub-button:hover{background:var(--oh-soft)}.ops-hub-button:disabled{opacity:.5;cursor:wait}.ops-hub-button.is-primary{background:var(--oh-ink);color:var(--oh-bg);border-color:var(--oh-ink)}.ops-hub-button.is-danger{color:var(--oh-accent)}.ops-hub-close{font-size:25px!important;border:0;padding:0;width:44px;flex-shrink:0}
.ops-hub-tabs{display:flex;padding:0 20px 12px;gap:5px;border-bottom:1px solid var(--oh-line)}.ops-hub-tabs .ops-hub-button{border:0;background:transparent;flex:1;color:var(--oh-muted);border-radius:7px}.ops-hub-tabs .is-active{background:var(--oh-soft);color:var(--oh-ink);font-weight:700}.ops-hub-status{flex-shrink:0;min-height:0;padding:0 20px;font-size:12px;color:var(--oh-muted)}.ops-hub-status:not(:empty){padding-top:10px;padding-bottom:2px}.ops-hub-status.is-error{color:var(--oh-accent)}.ops-hub-content{overflow:auto;padding:16px 20px 26px;overscroll-behavior:contain;min-height:0;flex:1}.ops-hub-content>.ops-hub-subtle{margin:10px 0 15px}.ops-hub-tools{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.ops-hub-tools:first-child{margin-top:0}.ops-hub-subtle{color:var(--oh-muted);font-size:11px;line-height:1.8;overflow-wrap:anywhere}.ops-hub-card{padding:15px 0;border-bottom:1px solid var(--oh-line)}.ops-hub-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.ops-hub-card h3,.ops-hub-card h4{font-size:14px;line-height:1.6;overflow-wrap:anywhere;min-width:0;font-weight:650}.ops-hub-count{font-size:10px;line-height:1.8;color:var(--oh-accent);padding:1px 6px;border:1px solid var(--oh-line);border-radius:4px;flex-shrink:0}.ops-hub-preview{font-size:12px;line-height:1.9;overflow-wrap:anywhere;margin-top:8px!important;white-space:pre-wrap}.ops-hub-empty{padding:44px 12px;text-align:center}.ops-hub-empty h3{font:700 20px/1.6 "Noto Serif SC","Songti SC",serif;margin-bottom:10px}.ops-hub-empty p{font-size:12px;color:var(--oh-muted);line-height:1.9}.ops-hub-room-title{font-size:17px;line-height:1.6;margin:20px 0 8px!important;overflow-wrap:anywhere}.ops-hub-announcement{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.9;padding:12px;background:var(--oh-soft);border-radius:7px;margin-top:15px!important}
.ops-hub-announcement-form{display:flex;flex-direction:column;gap:8px;padding:20px 0;border-bottom:1px solid var(--oh-line)}.ops-hub-announcement-form label{font-size:12px;font-weight:650}.ops-hub-announcement-form textarea{resize:vertical;border:1px solid var(--oh-line);border-radius:7px;padding:10px;min-height:90px;color:var(--oh-ink);background:var(--oh-bg);max-width:100%;line-height:1.8}.ops-hub-announcement-form button{align-self:flex-start}.ops-hub-confirm{padding:14px;border:1px solid var(--oh-accent);border-radius:8px;background:var(--oh-soft);margin-bottom:16px}.ops-hub-confirm p{font-size:12px;margin-bottom:10px;overflow-wrap:anywhere}.ops-hub-confirm button{margin:4px 6px 0 0}.ops-hub-preferences{display:flex;flex-direction:column;gap:15px;padding:8px 0 18px}.ops-hub-preferences>button{align-self:flex-start}.ops-hub-check{display:flex;align-items:center;gap:10px;min-height:44px;font-size:13px;cursor:pointer}.ops-hub-check input{width:19px;height:19px;accent-color:var(--oh-accent);flex-shrink:0}.ops-hub-muted-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--oh-line);font-size:12px}.ops-hub-muted-row>span{overflow-wrap:anywhere;min-width:0}
.ops-hub-toast{position:fixed;right:24px;bottom:88px;z-index:390;display:flex;align-items:center;gap:12px;max-width:min(390px,calc(100vw - 32px));border:1px solid var(--oh-line);border-radius:10px;background:var(--oh-bg);padding:10px 12px 10px 16px;box-shadow:0 4px 22px #182c2220;font-size:12px}.ops-hub-toast>span{overflow-wrap:anywhere}.ops-hub-toast button{flex-shrink:0}.ops-hub-launcher:focus-visible,.ops-hub-dialog :focus-visible,.ops-hub-toast :focus-visible{outline:3px solid var(--oh-accent);outline-offset:3px}
@media(max-width:767px){.ops-hub-launcher{right:12px;bottom:calc(88px + env(safe-area-inset-bottom,0px));padding:6px 10px;min-height:46px;gap:6px}.ops-hub-launch-label{font-size:10px}.ops-hub-bell{font-size:20px}.ops-hub-dialog{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom,0px));width:calc(100vw - 16px);max-width:calc(100vw - 16px);height:min(760px,calc(100dvh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)));max-height:calc(100dvh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));border-radius:14px}.ops-hub-head{padding:15px 16px 7px}.ops-hub-tabs{padding:0 12px 9px}.ops-hub-content{padding:12px 16px 25px}.ops-hub-status{padding-left:16px;padding-right:16px}.ops-hub-toast{right:12px;bottom:calc(148px + env(safe-area-inset-bottom,0px));max-width:calc(100vw - 24px)}.ops-hub-content input,.ops-hub-content textarea{font-size:16px}}
@media(prefers-reduced-motion:reduce){.ops-hub-launcher{transition:none}}
.ops-hub-native .ops-hub-launcher{display:none!important}.ops-hub-native .ops-hub-toast{top:calc(12px + env(safe-area-inset-top,0px));bottom:auto}.ops-hub-native .ops-hub-dialog{inset:auto 0 0;margin:0;width:100%;max-width:100%;height:min(850px,94dvh);max-height:94dvh;border-radius:20px 20px 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}
