:root{color-scheme:dark;--bg:#0c171e;--panel:#13232e;--line:#2a3b46;--ink:#edf2f4;--muted:#9faeb8;--accent:#eda463;--green:#8ac7b0}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.65 "Microsoft YaHei","PingFang SC",system-ui,sans-serif}a{color:var(--accent);text-underline-offset:4px}button,input,select{font:inherit}button{border:1px solid transparent;border-radius:9px;padding:11px 17px;background:var(--accent);color:#201b17;font-weight:700;cursor:pointer;min-height:44px}button:hover{filter:brightness(1.08)}button:disabled{opacity:.5;cursor:wait}.secondary{background:transparent;color:var(--ink);border-color:var(--line)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--green);outline-offset:3px}input,select{width:100%;padding:12px 13px;background:#0d1a23;border:1px solid #405360;border-radius:8px;color:var(--ink);margin-top:7px;min-width:0}label{display:block;font-weight:600;margin:18px 0}label small{font-weight:400;color:var(--muted);margin-left:8px}p{color:var(--muted)}h1,h2,h3{line-height:1.35}.topbar{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:20px 5vw;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:white;font-size:26px;font-weight:800}.brand img{width:34px;height:34px}.brand span{font-size:12px;color:var(--muted);font-weight:400;margin-left:8px}#account-nav{display:flex;gap:15px;align-items:center}.welcome{display:grid;grid-template-columns:1.15fr 1fr;gap:70px;align-items:center;max-width:1240px;padding:55px 35px;margin:auto;min-height:calc(100vh - 170px)}.hero h1{font-size:clamp(34px,4vw,55px);letter-spacing:-.04em;margin:20px 0}.hero>p{font-size:17px}.eyebrow{color:var(--accent)!important;letter-spacing:.16em;font-size:11px!important;font-weight:700}.room-art{width:100%;border-radius:14px;max-height:260px;object-fit:cover;margin-top:22px;opacity:.9;border:1px solid var(--line)}.auth-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:32px;max-width:530px;margin:auto;width:100%}.auth-card h1,.auth-card h2{font-size:27px;margin:12px 0}.auth-card>p{font-size:14px}.auth-card button[type=submit]{width:100%;margin:10px 0}.text-button{background:transparent;color:var(--accent);padding-left:0;font-size:14px;font-weight:400}.notice{font-size:14px;white-space:pre-line;color:var(--accent);overflow-wrap:anywhere;min-height:1em}.fine{font-size:12px!important;color:#a1afba}#dashboard{display:grid;grid-template-columns:220px 1fr;max-width:1440px;margin:auto;min-height:calc(100vh - 162px)}.sidebar{padding:30px 22px;border-right:1px solid var(--line)}.sidebar button{display:block;width:100%;text-align:left;background:transparent;color:var(--muted);margin:3px 0;font-weight:500}.sidebar button.selected{background:#233744;color:var(--accent)}.sidebar hr{border:0;border-top:1px solid var(--line);margin:22px 0}.sidebar a{display:block;font-size:13px;padding:15px}.sidebar-note{font-size:12px;margin:30px 15px}.workspace{padding:38px;min-width:0}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.page-heading h1{margin:8px 0;font-size:34px}.page-heading p{margin-bottom:0;font-size:14px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}.card{background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:22px;min-width:0}.card h3{font-size:20px;margin:10px 0}.card p{font-size:13px}.card .code{font:700 17px/1.5 ui-monospace,Consolas,monospace;color:var(--accent);letter-spacing:.02em}.card .actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.card .actions button,.card .actions a{font-size:13px;padding:8px 12px}.card .actions a{border:1px solid var(--line);border-radius:7px;text-decoration:none}.empty{grid-column:1/-1;border:1px dashed #405360;border-radius:15px;padding:50px 25px;text-align:center}.empty h2{font-size:22px}.empty p{font-size:14px}.status-pill{display:inline-block;font-size:12px;padding:3px 9px;border-radius:5px;background:#243947;color:#c6d6df;margin:4px 4px 4px 0}.status-pill.good{background:#193a33;color:#a7dcc7}.icon-button{background:transparent;color:var(--muted);font-size:26px;padding:3px 12px}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.dialog-heading h2{margin:0;font-size:24px}dialog{background:var(--panel);color:var(--ink);border:1px solid #475866;border-radius:14px;padding:27px;width:min(520px,calc(100vw - 30px));max-height:90dvh}dialog::backdrop{background:#000a;backdrop-filter:blur(5px)}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.copy-value{display:block;padding:16px;background:#0c171e;border:1px solid var(--line);border-radius:8px;color:var(--accent);font:700 24px/1.5 ui-monospace,Consolas,monospace;letter-spacing:.04em;user-select:all}.info{font-size:14px;color:var(--muted);white-space:pre-line}.danger{color:#ffaaa0;border-color:#905955}footer{display:flex;justify-content:space-between;gap:15px;padding:18px 5vw;font-size:11px;color:#7f929f;border-top:1px solid var(--line)}[hidden]{display:none!important}@media(max-width:780px){.brand span{display:none}.topbar{padding:14px 18px}.welcome{grid-template-columns:1fr;padding:24px 18px;gap:24px}.hero h1{font-size:33px}.hero br{display:none}.hero>p{font-size:14px}.room-art{display:none}.auth-card{padding:24px}#dashboard{grid-template-columns:1fr}.sidebar{display:flex;flex-wrap:wrap;gap:5px;padding:13px 15px;border-right:0;border-bottom:1px solid var(--line)}.sidebar button{width:auto;padding:9px 11px;font-size:13px}.sidebar hr,.sidebar-note,.sidebar>a{display:none}.workspace{padding:24px 18px}.page-heading h1{font-size:28px}.cards{grid-template-columns:1fr}footer{flex-direction:column;gap:4px}.brand{font-size:23px}#account-name{display:none}}
.cat-portrait{width:88px;height:88px;object-fit:contain;float:right;margin:0 0 12px 12px}
.no-room-shell{display:grid;grid-template-columns:220px 1fr;min-height:calc(100dvh - 110px);border-top:1px solid var(--line)}.no-room-shell>.sidebar{display:flex;flex-direction:column;align-items:stretch;gap:5px;padding:22px 14px;border-right:1px solid var(--line)}.no-room-shell>.sidebar button{text-align:left;background:transparent;color:var(--muted);border-color:transparent}.no-room-shell>.sidebar button:hover{background:#1b303c;color:var(--ink)}.no-room-shell>.sidebar hr{width:100%;border:0;border-top:1px solid var(--line)}.no-room-shell>.workspace{display:grid;place-items:center;padding:32px}.empty-room-card{width:min(480px,100%);padding:26px;border:1px solid var(--line);border-radius:14px;background:var(--panel);text-align:center}.empty-room-card h1{font-size:24px}.empty-room-card .actions{justify-content:center}@media(max-width:780px){.no-room-shell{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.no-room-shell>.sidebar{flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--line);padding:12px}.no-room-shell>.sidebar hr,.no-room-shell>.sidebar>a{display:none}.no-room-shell>.workspace{min-height:55dvh;padding:20px}}
/* Cathub branding: open artwork, never a framed photo panel. */
.brand img{width:52px;height:52px;object-fit:contain}.welcome{max-width:1420px;grid-template-columns:minmax(0,1.4fr) minmax(340px,1fr);gap:44px;padding-top:32px;padding-bottom:32px}.hero{min-width:0}.hero h1{font-size:clamp(32px,4vw,52px);letter-spacing:-.025em;text-wrap:balance}.hero-scene{display:block;width:100%;max-width:100%;height:auto;margin:18px 0 0;object-fit:contain;border:0;border-radius:0;background:none;mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent),linear-gradient(to bottom,transparent,#000 7%,#000 88%,transparent);mask-composite:intersect}.connection-brief{display:block;width:100%;resize:vertical;padding:14px;background:var(--bg);border:1px solid var(--line);border-radius:8px;color:var(--ink);margin:16px 0}.connection-brief:focus-visible{outline:3px solid var(--green);outline-offset:3px}#modal-fields h3{font-size:17px;margin-top:26px}
@media(max-width:780px){.welcome{grid-template-columns:minmax(0,1fr);gap:26px;padding:24px 18px}.brand img{width:44px;height:44px}.hero h1{font-size:clamp(29px,7.8vw,40px);margin:14px 0}.hero-scene{display:block;margin:8px -12px 0;width:calc(100% + 24px);max-width:none}.hero>p{margin-bottom:0}.connection-brief{font-size:14px}}
.connection-brief{font-family:inherit;font-size:13px;line-height:1.65}
.login-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;margin:0 0 20px;background:var(--bg);border:1px solid var(--line);border-radius:10px}.login-tabs button{min-width:0;padding:9px 12px;background:transparent;color:var(--muted);font-size:14px;border-radius:7px}.login-tabs button[aria-selected=true]{background:#2c414e;color:var(--ink);box-shadow:0 1px 3px #0003}.login-tabs button:disabled{cursor:default}#cat-login-status:empty{display:none}@media(max-width:400px){.login-tabs{margin-bottom:16px}.login-tabs button{padding-inline:8px}.auth-card #cat-login-panel h2{font-size:24px}}
/* One compact dialog shell for codes, forms and connection guidance. */
#modal{width:min(480px,calc(100vw - 28px));max-height:calc(100dvh - 32px);padding:20px}.dialog-heading{gap:12px;margin-bottom:14px}.dialog-heading h2{font-size:21px;margin:0}.dialog-heading .icon-button{min-width:36px;min-height:36px;padding:4px}#modal label{margin:12px 0}#modal input,#modal select{padding:9px 11px;margin-top:5px}#modal .info{font-size:13px;line-height:1.6;margin:10px 0 0}#modal .actions{margin-top:14px;gap:8px}#modal .actions:has(#modal-submit[hidden]){display:none}#modal-status{font-size:13px;min-height:0;margin:10px 0 0}#modal-status:empty{display:none}.code-copy-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}.code-copy-row .copy-value{flex:1;min-width:0;margin:0;padding:0;border:0;background:none;font-size:20px;letter-spacing:.05em}.code-copy-row button{padding:7px 12px;min-height:38px;flex-shrink:0}#modal-fields h3{margin:16px 0 6px;font-size:15px}.connection-brief{margin:10px 0;font-size:12px}.connection-preview{margin-top:12px;font-size:13px}.connection-preview summary{cursor:pointer;color:var(--muted)}

.cat-option{display:flex!important;align-items:center;gap:10px;padding:9px 10px;margin:6px 0;border:1px solid var(--line);border-radius:8px;background:var(--bg);cursor:pointer}.cat-option input{width:18px;height:18px;margin:0;flex:0 0 auto}.cat-option img{width:38px;height:38px;object-fit:contain;flex:0 0 auto}.cat-option span{min-width:0;overflow-wrap:anywhere}#cat-selection fieldset{border:1px solid var(--line);border-radius:9px;padding:8px 12px 12px;min-width:0}#cat-selection legend{padding:0 6px;color:var(--muted)}#cat-switch{width:auto;max-width:220px;margin:0;padding:8px 10px}@media(max-width:780px){#cat-switch{max-width:150px}}
html[data-cathub-manage] .topbar{padding:8px 20px}html[data-cathub-manage] .brand{font-size:21px}html[data-cathub-manage] .brand img{width:28px;height:28px}html[data-cathub-manage] .brand span{display:none}html[data-cathub-manage] #account-button{min-height:38px;padding:7px 12px}html[data-cathub-manage] #dashboard{min-height:calc(100dvh - 100px)}html[data-cathub-manage] .sidebar{padding:16px 14px}html[data-cathub-manage] .workspace{padding:24px}html[data-cathub-manage] .page-heading{margin-bottom:16px}html[data-cathub-manage] .page-heading h1{font-size:26px}html[data-cathub-manage] footer{display:none}@media(max-width:780px){html[data-cathub-manage] #dashboard{grid-template-rows:auto minmax(0,1fr)}html[data-cathub-manage] .topbar{padding:6px 12px}html[data-cathub-manage] .workspace{padding:18px 14px}html[data-cathub-manage] .sidebar{padding:12px}}

.invitation-bound-email{display:grid;gap:6px;margin:18px 0;color:var(--muted);font-size:13px}.invitation-bound-email strong{color:var(--ink);overflow-wrap:anywhere;font-size:16px}.invitation-back{display:inline-block;margin-top:16px;font-size:13px}#account-invitation-status:empty{display:none}#account-invitation .info,#signup-note{font-size:13px;line-height:1.6}#account-invitation-form>button{width:100%}

.password-rules{display:block;margin-top:7px;font-size:12px;font-weight:400;line-height:1.6;color:var(--muted)}

.email-change-step{font-weight:700;color:var(--accent,#f2aa62)}
.email-change-address{overflow-wrap:anywhere}
.email-change-hint{font-size:14px;color:var(--muted)}

.email-change-secondary{gap:8px;flex-wrap:wrap}
.email-change-modal #modal-cancel{order:-1}
.email-change-modal .actions:last-child{justify-content:flex-end}

.room-more-actions{display:flex;flex-direction:column;gap:8px}.room-more-actions button{text-align:left;width:100%}
.hub-settings-dialog{width:min(1100px,calc(100vw - 40px));max-height:86dvh;padding:18px;overflow:auto}
.hub-settings-dialog>.topbar{padding:12px 0;min-height:0}.hub-settings-dialog .brand{font-size:20px}.hub-settings-dialog .brand span{display:none}
.hub-settings-dialog #dashboard{min-height:0;max-width:none;margin:0}.hub-settings-dialog #dashboard main{padding:24px}.hub-settings-dialog .sidebar{padding:20px 12px}
@media(max-width:600px){.hub-settings-dialog{width:calc(100vw - 24px);padding:12px;max-height:90dvh}.hub-settings-dialog>.topbar{flex-wrap:wrap}.hub-settings-dialog #dashboard main{padding:16px 0}}

/* Personal scene library shares the configuration popup. */
#cards.personal-panel{display:block}.decoration-library{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:16px;margin-top:20px}.decoration-card{min-width:0}.decoration-card>img{display:block;width:100%;aspect-ratio:8/3;object-fit:cover;border-radius:8px}.decoration-card h2{font-size:18px;overflow-wrap:anywhere}.decoration-card select{width:100%;min-height:44px}.personal-panel .actions{flex-wrap:wrap;gap:8px}.personal-panel .actions>*{max-width:100%;min-height:44px}.personal-panel .actions>a{display:flex;align-items:center}.personal-panel .notice{overflow-wrap:anywhere}@media(max-width:600px){.decoration-library{grid-template-columns:1fr}}

.room-purchase{border-top:1px solid #304653;margin-top:18px;padding-top:14px;min-width:0}.room-purchase h3{margin:0 0 8px}.purchase-muted{color:#adc3d0;font-size:13px;line-height:1.6}.purchase-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));gap:12px}.purchase-plan{border:1px solid #365363;border-radius:12px;padding:16px;background:#132530;min-width:0}.purchase-plan.selected{border-color:#f3ad63;box-shadow:0 0 0 1px #f3ad63}.purchase-plan h4{font-size:21px;margin:0 0 12px}.purchase-plan ul{padding-left:18px;color:#c2d2dc;line-height:1.9;font-size:14px}.purchase-plan button{width:100%;margin-top:8px;min-height:44px}.purchase-checkout{background:#172c3a;border:1px solid #3a586b;border-radius:12px;padding:16px;margin-top:14px}.purchase-checkout h4{margin:0 0 14px}.purchase-checkout>button{margin:8px 8px 0 0;min-height:44px}.purchase-checkout input{text-transform:uppercase}.purchase-success{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.purchase-success code{font-size:20px;color:#f3ad63;overflow-wrap:anywhere}.purchase-success small{flex-basis:100%;color:#adc3d0}.purchase-orders button{display:block;margin:8px 0;overflow-wrap:anywhere}.room-purchase [hidden]{display:none!important}

#modal.room-purchase-modal{width:min(880px,calc(100vw - 32px));max-width:880px}.room-purchase{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 18px}.room-purchase>h3,.room-purchase>.purchase-muted,.room-purchase>.notice,.room-purchase>.purchase-orders{grid-column:1/-1;margin:0}.room-purchase>.purchase-checkout{margin-top:0;align-self:start}.room-purchase>.purchase-plans{align-self:start}.room-purchase-modal #modal-fields>label{display:block}.purchase-checkout h4{line-height:1.5}.purchase-methods{display:flex;flex-direction:column;gap:8px;margin-top:16px}.purchase-methods button{min-height:44px}@media(max-width:620px){.room-purchase{grid-template-columns:minmax(0,1fr)}#modal.room-purchase-modal{width:calc(100vw - 32px)}.room-purchase>.purchase-muted{font-size:12px}}
.opening-plans-link{display:block;padding:12px 0;color:#f3ad63}
