/* 현재 허브의 공통 미리보기·이력·메뉴·접근성 구성요소. */
:root{--gh-shadow:0 8px 22px #1f273117,0 24px 60px #20273313;--gh-solid:#f4f6f9f5;--gh-surface:#ffffff88;--gh-head:#ffffffaa;--gh-selected:#ffffff85;--gh-blur:blur(22px) saturate(145%);--gh-accent:#f2f96288;--gh-accent-ink:#262b10}
body.glass-hub{background-attachment:fixed}
html:has(body.glass-hub){--ink:#1d2630;--vp-ink:#1d2630;--muted:#414b57;--vp-gray:#414b57;--vp-sub:#414b57;--acc:#737b16;--acc-text:#525b13;--acc-soft:#f2f96225;--acc-row:var(--gh-selected);--acc-border:transparent;--on-acc:#262b10;--s0:transparent;--s1:#f9fafb;--s2:#eff2f4;--s3:#fff;--nav-bg:transparent;--hair:#3746531a;--hair-in:#37465314;--solid:#e9eeb0;--solid-text:#262b10}
html[data-theme=dark]:has(body.glass-hub){--ink:#edf2f8;--vp-ink:#edf2f8;--muted:#c4cdd8;--vp-gray:#c4cdd8;--vp-sub:#c4cdd8;--acc:#f2f962;--acc-text:#e3e9a3;--s1:#202936;--s2:#273344;--s3:#334257;--hair:#d4e0f21a;--hair-in:#d4e0f214;--solid:#384336;--solid-text:#f1f3de;--gh-shadow:0 8px 22px #02071140,0 24px 60px #01071433}
body.glass-hub>header{border:0}
body.glass-hub>header>.brand{display:flex;min-height:44px;color:var(--ink)}
body.glass-hub>header>.brand .blogo{display:block}
body.glass-hub>header>.brand .morpho{display:none}
body.glass-hub>header>.brand .wm{font-weight:700}
body.glass-hub>header>.brand .wm-v,body.glass-hub>header>.brand .wm-p{background:none;color:inherit}
body.glass-hub>header .searchwrap{flex:1}
body.glass-hub>header .hbtn,body.glass-hub>header .avatar{flex:none;min-height:44px;border:0}
body.glass-hub .a-main,body.glass-hub .tlnext{background:var(--gh-accent);color:var(--gh-accent-ink);border:0;box-shadow:0 4px 12px #555a131a}
body.glass-hub main{max-width:1800px;margin-inline:auto;padding:0 18px 18px}
body.glass-hub #hubWrap{align-items:start}
body.glass-hub.nav-rail #hubWrap{grid-template-columns:56px minmax(0,var(--col-list,300px)) minmax(340px,1fr) minmax(0,var(--col-hist,420px))}
body.glass-hub #sideNav{top:18px}
body.glass-hub .sn-item{min-height:44px;border:0;border-radius:16px;background:none;color:var(--ink);font-size:12px}body.glass-hub .sn-item.on{background:var(--gh-selected);color:var(--ink);box-shadow:none}
body.glass-hub #listBar{background:transparent;position:static}body.glass-hub .lb-title{width:100%;flex:auto}body.glass-hub #lbTitle{font-size:13px}body.glass-hub #chipTools{flex-wrap:wrap}body.glass-hub #chipTools .tlbl{display:none}body.glass-hub #kindSeg{margin:0}
body.glass-hub #listBar button{min-width:44px}body.glass-hub #listBar button.on{background:var(--gh-selected);color:var(--ink)}
body.glass-hub #filterBar{margin:5px 0 10px;flex-wrap:wrap}body.glass-hub #filterBar select{width:100%;min-width:0;min-height:44px}
body.glass-hub #heroDrop{margin:4px 0 10px;padding:9px;border:0;border-radius:14px;background:var(--gh-selected);flex-wrap:wrap;gap:6px}body.glass-hub #hdS,body.glass-hub #hdIco{display:none}body.glass-hub #hdT{font-size:11px}body.glass-hub .hd-body{width:100%;flex-basis:100%}body.glass-hub .hd-pick{font-size:10px;min-height:44px;padding:7px;flex:1}
body.glass-hub #deckList{margin:0;border:0;background:none;padding:0}body.glass-hub .lrow{padding:13px 9px;border:0;border-radius:17px;min-height:82px;gap:8px;background:none}body.glass-hub .lrow.sel{background:var(--gh-selected)}
body.glass-hub #projects .lrow .lbody{min-width:0}body.glass-hub .lrow .lth{display:none}body.glass-hub .lrow .lcol{display:none}body.glass-hub .ltitle{font-size:12px;font-weight:600}body.glass-hub .lmeta{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.glass-hub .lmeta .lauthor{display:none}
body.glass-hub .lacts{gap:0}body.glass-hub .lacts>:not(.la-info){display:none}body.glass-hub .abtn34{width:44px;height:44px;min-width:44px;border:0;color:var(--ink);background:none}body.glass-hub .abtn34:after{display:none}
body.glass-hub #deckCards{grid-template-columns:1fr;margin:0;gap:10px}body.glass-hub .dcard{border:0;background:var(--gh-selected);border-radius:18px}body.glass-hub .ctitle{font-size:12px}body.glass-hub .cprev{height:130px}
#ghPreview{grid-column:3;grid-row:2;min-width:0}
.gh-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;border:0;border-radius:13px;background:none;color:var(--ink);cursor:pointer}.gh-icon svg{flex:none}
body.glass-hub .gh-select-popup[aria-label="미리보기 배율"] button{min-height:44px}
.gh-preview-shell{position:relative;border-radius:22px;overflow:hidden;background:#fff}#ghPreviewPort{height:clamp(408px,calc(100dvh - 382px),688px);min-height:0;position:relative;overflow:hidden;background:#fff;color:#25303a}#ghPreviewPort iframe{border:0;display:block;width:100%;height:100%;transform-origin:top left;max-width:none}
.gh-preview-empty{display:flex;min-height:100%;padding:32px;align-items:center;justify-content:center;gap:16px;flex-direction:column;text-align:center;font-size:13px}.gh-preview-empty h2{font-size:21px;overflow-wrap:anywhere}.gh-preview-empty p{line-height:1.7}
#ghPosition{position:absolute;right:14px;top:12px;z-index:3;background:#edf0ecb0;color:#303630;font-size:11px;padding:7px 11px;border-radius:10px;opacity:0;pointer-events:none;transition:opacity .2s;font-variant-numeric:tabular-nums}#ghPosition.visible{opacity:1}
#ghPageFeedback{position:absolute;right:14px;bottom:14px;min-height:44px;display:flex;align-items:center;gap:6px;border:0;border-radius:14px;padding:9px 13px;background:#f2f6cae6;color:#41470b;font-size:11px;cursor:pointer}
body.glass-hub #infoPanel{top:18px;max-width:none}
body.glass-hub #infoPanel .ip-tabwrap{display:none!important}.gh-history-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.gh-history-title h2{margin:0}.gh-history-title small{font-size:10px;font-weight:400;color:var(--muted);margin-left:6px}.gh-history-title .gh-icon{display:none}
body.glass-hub #ipBody{overscroll-behavior:contain}body.glass-hub #ipHist{display:block!important}body.glass-hub .ipnote{display:none}body.glass-hub .ipempty{font-size:11px;line-height:1.7}
body.glass-hub .tlkids{padding-left:8px}body.glass-hub .ipib{min-width:44px;min-height:44px}body.glass-hub .annoi{background:var(--gh-selected);border:0;border-radius:14px;padding:12px;display:flex;flex-wrap:wrap;gap:5px}body.glass-hub .annoi .x{flex-basis:100%;font-size:12px;line-height:1.7}body.glass-hub .mtgc{border:0;background:var(--gh-selected);border-radius:15px;padding:12px}
body.glass-hub dialog .dhead,body.glass-hub dialog .dfoot{border-color:var(--hair)}body.glass-hub dialog button,body.glass-hub dialog input,body.glass-hub dialog select{min-height:44px}body.glass-hub dialog::backdrop{background:#131c3040}
body.glass-hub #viewer .vw-controls,body.glass-hub .ce-top{border:0}
body.glass-hub .rv-top{background:var(--gh-solid);border:0;color:var(--ink)}
#ghFileInfo{width:min(520px,calc(100% - 28px))}#ghFileInfo .dhead{display:flex;align-items:center;justify-content:space-between}#ghFileInfo h2{font-size:20px;overflow-wrap:anywhere}.gh-defs{display:grid;grid-template-columns:1fr 1fr;gap:22px 14px;margin:24px 0}.gh-defs dt{font-size:11px;color:var(--muted);margin-bottom:7px}.gh-defs dd{font-size:13px;margin:0;overflow-wrap:anywhere}
@media(hover:hover){.gh-icon:hover{background:var(--gh-selected)}body.glass-hub .lrow:hover{background:var(--gh-selected)}}
.gh-icon:focus-visible{outline:2px solid var(--acc-text);outline-offset:2px}
@media(max-width:900px){
 body.glass-hub main{padding:0 18px 18px}
 #ghPreview{grid-column:2}
 body.glass-hub #infoPanel.gh-history-open:not([hidden]){display:flex}.gh-history-title .gh-icon{display:flex}
 #ghPreviewPort{min-height:420px;height:calc(100dvh - 355px)}
}
@media(max-width:640px){
 body.glass-hub>header .searchwrap input{min-width:0;padding-right:8px}body.glass-hub>header #kbdHint,body.glass-hub>header #btnTrashHdr,body.glass-hub>header #btnNew span{display:none}
 body.glass-hub main{padding:0 12px calc(18px + env(safe-area-inset-bottom))}body.glass-hub #hubWrap{flex-direction:column}
 body.glass-hub #listBar{padding-bottom:10px}.lb-title{display:none!important}body.glass-hub #listBar #kindSeg,body.glass-hub #chipTools{height:auto}body.glass-hub #chipTools{margin-left:auto;flex-wrap:nowrap}body.glass-hub #kindSeg .sn-n{display:none}
 body.glass-hub #heroDrop .hd-body{display:none}body.glass-hub #heroDrop{padding:8px}body.glass-hub .lrow{min-height:88px;padding:14px 8px}body.glass-hub .ltitle{font-size:14px}body.glass-hub .lmeta{font-size:11px}body.glass-hub .lrow .lth{display:flex;width:38px;height:46px;border:0;border-radius:10px}body.glass-hub .lacts{display:flex}body.glass-hub .lacts .la-info{display:flex}
 #ghPreview{display:none}#ghPreview.mobile-open{display:flex;flex-direction:column;position:fixed;inset:10px 10px calc(10px + env(safe-area-inset-bottom));z-index:40;background:var(--gh-solid);border-radius:22px;padding:10px;box-shadow:0 15px 55px #16233740}#ghPreview.mobile-open .gh-preview-shell{flex:1;min-height:0}#ghPreviewPort{height:100%;min-height:0}
 body.glass-hub #infoPanel{padding-bottom:calc(18px + env(safe-area-inset-bottom))}
}
@media(prefers-reduced-motion:reduce){#ghPosition{transition:none}}
body.glass-hub #heroDrop{height:auto;min-height:0;flex-shrink:0;align-items:center}body.glass-hub #heroDrop .hd-pick{height:auto;white-space:normal;margin:0}
body.glass-hub #projects .lacts{width:44px;min-width:44px;flex:0 0 44px;position:static;transform:none;margin:0;padding:0}body.glass-hub #projects .lrow:before{display:none}
body.glass-hub #infoPanel .vblk{border:0}body.glass-hub #infoPanel .annoi .p{border:0;background:none;color:var(--acc-text);cursor:pointer;font:inherit}
body.glass-hub #heroDrop{grid-template-columns:1fr 1fr}body.glass-hub #heroDrop .hd-body{grid-column:1/-1}body.glass-hub #heroDrop .hd-pick{width:100%;font-size:10px;background:transparent;border:0;min-width:0}body.glass-hub #heroDrop[hidden]{display:none}
body.glass-hub .ltitle{display:block;text-align:left;border:0;background:none;font-family:inherit;padding:0;min-height:44px;line-height:1.5}body.glass-hub .lrow .ltop{row-gap:2px}body.glass-hub dialog .dhead:after{display:none}
body.glass-hub>header .avatar,body.glass-hub>header #btnTrashHdr{min-width:44px}body.glass-hub #ipHist .tlnextline{display:none}body.glass-hub .cbtn{width:44px;height:44px}body.glass-hub .cscrim .c-link,body.glass-hub .cscrim .c-dl,body.glass-hub .cscrim .c-edit{display:none}
@media(max-width:640px){body.glass-hub>header #btnNew{order:2}html:has(body.glass-hub #ghPreview.mobile-open),body.glass-hub:has(#ghPreview.mobile-open){overflow:hidden}}
body.glass-hub #projects .revi,body.glass-hub #projects .mtgi{display:inline-flex;align-items:center;justify-content:center;gap:3px;border:0;cursor:pointer}
body.glass-hub>header{margin-inline:auto;padding-left:178px}
body.glass-hub #listBar .vtoggle{border-radius:16px;overflow:visible}
body.glass-hub #listBar .vtoggle button{border-radius:12px;padding:8px;flex:none}
body.glass-hub #listBar #chipTools{align-items:center;gap:2px}
body.glass-hub #listBar button:not(.on){color:var(--muted)}
body.glass-hub #projects .lbody{gap:2px}
body.glass-hub #projects .ltop{column-gap:2px;row-gap:0}
body.glass-hub #projects .revi,body.glass-hub #projects .mtgi{color:var(--muted)}
body.glass-hub #projects .lrow:not(:has(.revi,.mtgi)) .ltop{padding-bottom:3px}
body.glass-hub #deckList{box-shadow:none}
@media(max-width:900px){
 body.glass-hub>header{padding-left:18px}
}
@media(max-width:640px){
 body.glass-hub>header{padding-left:14px}
 body.glass-hub #listBar{padding-inline:4px}
}
body.glass-hub #listBar{flex:0 0 auto}
body.glass-hub #sideNav .sn-item,body.glass-hub #sideNav .sn-item.on,body.glass-hub #projects .lacts .abtn34{color:var(--ink)}
body.glass-hub #sideNav .sn-item.on{background:var(--gh-selected)}
body.glass-hub #sideNav .sn-item:before{display:none}
body.glass-hub #infoPanel .ipib{color:var(--muted)}
body.glass-hub #projects .lacts .abtn34{border-radius:12px}
body.glass-hub #heroDrop{display:none!important}
body.glass-hub #projects .lrow.sel{border:0}
body.glass-hub>header .hbtn{display:inline-flex;align-items:center;justify-content:center;padding:0 12px;gap:6px;line-height:1;height:44px}
body.glass-hub>header .avatar{display:inline-flex;align-items:center;justify-content:center;gap:6px;line-height:1;height:44px}
body.glass-hub>header .avatar{width:44px;padding:0}
body.glass-hub>header .hbtn svg{display:block;flex:none;margin:0}
body.glass-hub>header .searchwrap input::placeholder{font-size:11px;color:var(--muted);opacity:.58}
body.glass-hub #filterBar{box-shadow:none;align-items:stretch}
body.glass-hub #filterBar select{display:none}
.gh-filter{width:100%;min-width:0;background:var(--gh-selected);border-radius:14px;overflow:hidden}
.gh-filter summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;padding:10px 12px;font-size:12px;cursor:pointer;list-style:none}
.gh-filter summary::-webkit-details-marker{display:none}
.gh-filter summary:after{content:"+";font-size:16px;color:var(--muted)}
.gh-filter[open] summary:after{content:"−"}
.gh-filter summary:focus-visible{outline:2px solid var(--ink);outline-offset:-3px;border-radius:14px}
.gh-filter-options{display:grid;gap:3px;padding:4px 6px 6px;max-height:264px;overflow:auto;scrollbar-width:thin}
.gh-filter-options button{min-height:44px;padding:10px;border:0;border-radius:10px;background:none;color:var(--muted);text-align:left;font:inherit;font-size:12px;cursor:pointer}
.gh-filter-options button[aria-pressed=true]{background:var(--gh-head);color:var(--ink);font-weight:600}
@media(hover:hover){.gh-filter-options button:hover{background:var(--gh-head)}}
body.glass-hub #reviewer,body.glass-hub #viewer,body.glass-hub #canvasEdit{--vp-bg:#edf0f3;--vp-card:#f7f8fa;--ico-idle:#536171}
html[data-theme=dark] body.glass-hub #reviewer,html[data-theme=dark] body.glass-hub #viewer,html[data-theme=dark] body.glass-hub #canvasEdit{--vp-bg:#19212b;--vp-card:#242e3a;--ico-idle:#c7d1dd}
body.glass-hub #reviewer .rv-top{box-shadow:0 4px 16px #00000015;gap:8px}
body.glass-hub #reviewer #rvSide{border:0;padding:12px 8px}
body.glass-hub #reviewer .rv-body{min-height:0}
body.glass-hub #reviewer .rv-t,body.glass-hub #reviewer .rv-nav button{width:44px;height:44px;flex:none}
body.glass-hub #reviewer .rv-tools{gap:4px}
body.glass-hub #reviewer .rv-save{min-height:44px;border-radius:12px}
@media(max-width:640px){
 body.glass-hub #projects .lbody{flex-direction:row;align-items:center;gap:6px}
 body.glass-hub #projects .lrow:not(:has(.revi,.mtgi)) .ltop{padding-bottom:0}
 body.glass-hub #reviewer .rv-top{padding:8px;max-height:40dvh;overflow:auto}
}
@media(max-width:640px){
 body.glass-hub #reviewer #rvTitle{order:0;flex:1 1 calc(100% - 52px);max-width:calc(100% - 52px);min-height:44px;line-height:44px}
 body.glass-hub #reviewer #rvClose{order:1}
 body.glass-hub #reviewer .rv-nav{flex:1;justify-content:flex-start;gap:6px}
 body.glass-hub #reviewer #rvRev{max-width:160px}
}
body.glass-hub #projects .lrow{cursor:pointer}
body.glass-hub #listBar{grid-template-columns:minmax(0,1fr) auto}
body.glass-hub #listBar .lb-title{grid-column:1/-1}
body.glass-hub #listBar #kindSeg{min-width:0;justify-self:start}
body.glass-hub #listBar #kindSeg .sn-n{display:none}
body.glass-hub #listBar #kindSeg button{font-size:0;gap:0;width:44px;padding:0;justify-content:center}
body.glass-hub #listBar #kindSeg button svg{width:16px;height:16px}
body.glass-hub #listBar #chipTools{justify-self:end}
.gh-rev-actions-label{display:none}
body.glass-hub #infoPanel .gh-rev-actions-label{width:100%;font-size:10px;color:var(--muted);padding:0 4px 2px}
body.glass-hub dialog,body.glass-hub .dlmenu,body.glass-hub .umenu,body.glass-hub #newMenu{color:var(--ink)}
body.glass-hub .ce-bgmenu{background:var(--gh-popup);color:var(--ink);border:0}
body.glass-hub .dlmenu{min-width:210px;max-width:calc(100vw - 24px)}
body.glass-hub .dlmenu button,body.glass-hub .umenu button{min-height:44px;border:0;border-radius:11px;background:none;color:var(--ink);font-size:12px;padding:10px 12px;font-weight:500}
body.glass-hub .dlmenu .dlsep{letter-spacing:.04em;font-weight:600;color:var(--muted);border-top:1px solid var(--hair)}
body.glass-hub .dlmenu button.danger{color:var(--red-text)}
body.glass-hub dialog :is(input:not([type=checkbox],[type=radio],[type=range],[type=color]),textarea,select){background:var(--gh-selected);color:var(--ink);border:1px solid var(--hair);border-radius:12px}
body.glass-hub dialog .dbody,body.glass-hub dialog .dhead,body.glass-hub dialog .dfoot{background:none}
body.glass-hub dialog .hbtn:not(.primary){background:var(--gh-selected);color:var(--ink);border:0;border-radius:12px}
@media(hover:hover){body.glass-hub .dlmenu button:hover,body.glass-hub .umenu button:hover{background:var(--gh-selected)}}
body.glass-hub #reviewer,body.glass-hub #viewer,body.glass-hub #canvasEdit{background:var(--gh-bg);background-attachment:fixed;isolation:isolate}
html[data-theme=dark] body.glass-hub #reviewer,html[data-theme=dark] body.glass-hub #viewer,html[data-theme=dark] body.glass-hub #canvasEdit{background:var(--gh-bg)}
body.glass-hub #reviewer:before,body.glass-hub #viewer:before,body.glass-hub #canvasEdit:before{content:"";position:absolute;inset:0;z-index:-1;background:var(--gh-surface);pointer-events:none}
body.glass-hub #reviewer .rv-top,body.glass-hub #reviewer #rvSide,body.glass-hub .ce-top,body.glass-hub #viewer .vw-controls{background:var(--gh-head);color:var(--ink)}
body.glass-hub #reviewer .rv-stage,body.glass-hub .ce-stage{background:transparent}
body.glass-hub #reviewer #rvSide{margin-top:10px;border-radius:0 20px 20px 0}
body.glass-hub #reviewer #rvRev{background:var(--gh-selected);color:var(--ink);border:0;border-radius:10px;min-height:44px}
body.glass-hub #reviewer .rv-save{background:var(--gh-accent);color:var(--gh-accent-ink);border:0}
body.glass-hub>header #btnNew{margin-left:auto;width:44px;min-width:44px;height:44px;padding:0;border-radius:16px;background:none;color:var(--ink);box-shadow:none}
@media(hover:hover){body.glass-hub>header #btnNew:hover{background:var(--gh-selected)}}
body.glass-hub #dlgAdmin .panel{background:var(--gh-selected);border:0;border-radius:18px}
body.glass-hub #dlgAdmin .dbody{max-height:calc(100dvh - 170px);overflow:auto}
body.glass-hub #projects .lmeta{overflow-wrap:anywhere}
@media(max-width:640px){
 body.glass-hub #projects .lrow .lbody{flex-wrap:wrap;row-gap:0}
 body.glass-hub #projects .lrow{padding-block:10px}
}
body.glass-hub select.gh-native-select{display:none!important}
.gh-select-button{display:inline-flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;max-width:100%;min-width:0;padding:10px 12px;background:var(--gh-selected);color:var(--ink);border:0;border-radius:12px;font:inherit;font-size:12px;text-align:left;cursor:pointer;overflow-wrap:anywhere}
.gh-select-button:after{content:"⌄";flex:none;color:var(--muted)}
.gh-select-button:disabled{opacity:.5;cursor:default}
.gh-select-button[aria-invalid=true]{outline:2px solid var(--red-text)}
.gh-select-popup{position:fixed;inset:auto;margin:0;padding:6px;border:0;border-radius:16px;background:var(--gh-popup);color:var(--ink);box-shadow:0 16px 48px #10182438;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.gh-select-popup:popover-open{display:grid;gap:3px}
.gh-select-popup button{display:block;width:100%;min-height:44px;padding:10px 12px;border:0;border-radius:10px;background:none;color:inherit;text-align:left;font:inherit;font-size:12px;white-space:normal;overflow-wrap:anywhere;cursor:pointer}
.gh-select-popup button[aria-selected=true]{background:var(--gh-selected);font-weight:650}
.gh-select-popup button:disabled{opacity:.45;cursor:default}
.gh-select-popup button:focus-visible{outline:2px solid var(--ink);outline-offset:-2px;background:var(--gh-selected)}
.gh-select-group{font-size:10px;color:var(--muted);padding:12px 12px 4px}
body.glass-hub dialog .gh-select-button{width:100%}
body.glass-hub .setctl .gh-select-button{width:auto}
@media(hover:hover){.gh-select-popup button:hover:not(:disabled){background:var(--gh-selected)}}
@media(max-width:640px){body.glass-hub #reviewer .gh-select-button[data-select-id=rvRev]{order:3;max-width:160px;flex:0 1 160px}body.glass-hub #canvasEdit .gh-select-button[data-select-id=ceProject]{max-width:140px}}
body.glass-hub #projects .lrow .lbody{display:flex;flex-direction:column;align-items:stretch;gap:0}
body.glass-hub #projects .ltop{min-width:0;width:100%;flex:auto}
body.glass-hub #projects .ltitle{flex-basis:0}
body.glass-hub #projects .ltop>:not(.ltitle){flex-shrink:0}
body.glass-hub #projects .lmeta{flex:auto;max-width:none;margin:0;min-width:0}
.gh-select-button:after{display:none}.gh-select-button svg{flex:none}.gh-select-value{min-width:0;overflow-wrap:anywhere}
body.glass-hub #infoPanel .gh-rev-actions-label{display:none}
body.glass-hub #infoPanel .tlkids{border-left:1px solid var(--hair)}
body.glass-hub #infoPanel .tlkids:before,body.glass-hub #infoPanel .tlkids>*:after{display:none}
body.glass-hub #infoPanel .tle{padding:0}
body.glass-hub #infoPanel .mtgc-top{gap:5px}
body.glass-hub #infoPanel .mtgc-top .vb{min-width:22px;width:22px;height:22px;border-radius:8px}
body.glass-hub #infoPanel .mtgc-top .acts{gap:0;margin:0}
body.glass-hub #infoPanel .mtgc-top .m{font-size:10px;margin-top:2px}
body.glass-hub #deckList{display:flex;flex-direction:column}
body.glass-hub #projects .lrow:after{content:"";position:absolute;left:20px;right:10px;bottom:-2px;height:1px;background:var(--hair);pointer-events:none}
body.glass-hub #projects .lrow:last-child:after,body.glass-hub #projects .lrow.sel:after{display:none}
body.glass-hub #projects .lrow.sel{box-shadow:none}
body.glass-hub #infoPanel .vblk+.vblk{border-top:1px solid var(--hair)}
body.glass-hub #infoPanel .tlkids{margin:4px 0 8px 21px}
body.glass-hub #infoPanel .mtgc{background:transparent;margin:0;border-radius:10px}
body.glass-hub #infoPanel .mtgc-top>.acts{justify-content:flex-start;margin:0}
body.glass-hub #infoPanel .mtgc-top>.mid{min-width:0}
body.glass-hub #infoPanel .tle{gap:6px}
body.glass-hub #deckList{gap:2px}
body.glass-hub #projects .lrow{padding-top:2px;padding-bottom:4px}
body.glass-hub #projects .lmeta{padding-bottom:0}
body.glass-hub #infoPanel .mtgc-top>.acts{flex-wrap:nowrap;align-items:center}
body.glass-hub #infoPanel .vblk+.vblk{margin-top:4px;padding-top:4px}
body.glass-hub #infoPanel .tlkids{margin-top:2px;margin-bottom:2px}
body.glass-hub #infoPanel .mtgc{padding:2px 0}
body.glass-hub #ipHist .tlnext{background:transparent;color:var(--ink);border:1px dashed color-mix(in srgb,var(--gh-accent) 62%,var(--hair));box-shadow:none}
body.glass-hub #ipHist .tlnext.draft{background:color-mix(in srgb,var(--gh-selected) 55%,transparent);border-style:solid}
body.glass-hub #ipHist .tlnext .future{opacity:.72}
@media(hover:hover){body.glass-hub #ipHist .tlnext:hover{background:color-mix(in srgb,var(--gh-selected) 45%,transparent)}}
body.glass-hub #infoPanel .annolist{display:grid;gap:6px;margin:2px 0 6px 0;padding:0;border:0}
body.glass-hub #infoPanel .annoi{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:2px 6px;align-items:start}
body.glass-hub #infoPanel .annoi .w{grid-column:1;grid-row:1;font-size:11px;line-height:1.4}
body.glass-hub #infoPanel .annoi .x{grid-column:1;grid-row:2;min-width:0}
body.glass-hub #infoPanel .annoi .p{grid-column:2;grid-row:1/3;align-self:center;padding:0;width:44px;height:44px}
body.glass-hub #infoPanel .annoi:not(:has(.p)){grid-template-columns:minmax(0,1fr)}
body.glass-hub #infoPanel .annoi:not(:has(.w)) .x{grid-row:1}
body.glass-hub #infoPanel .tle,body.glass-hub #infoPanel .mtgc-top{display:grid;grid-template-columns:22px minmax(0,1fr) 44px 88px;column-gap:4px;align-items:center;min-height:44px}
body.glass-hub #infoPanel .tle>.d,body.glass-hub #infoPanel .gh-mtg-date{grid-column:3;grid-row:1;text-align:right;font-size:10px;line-height:1.5;color:var(--muted);font-variant-numeric:tabular-nums}
body.glass-hub #infoPanel .gh-mtg-date{display:flex;flex-direction:column;align-items:flex-end}
body.glass-hub #infoPanel .gh-mtg-date small{font-size:10px}
body.glass-hub #infoPanel .tle>.cv{grid-column:4;grid-row:1;width:44px;min-height:44px;justify-self:end;align-items:center;justify-content:center}
body.glass-hub #infoPanel .mtgc-top>.acts{grid-column:4;grid-row:1;display:grid;grid-template-columns:44px 44px;gap:0}
body.glass-hub #infoPanel .mtgc-top [data-mmore]{grid-column:1;grid-row:1}
body.glass-hub #infoPanel .mtgc-top [data-mview]{grid-column:2;grid-row:1}
body.glass-hub #infoPanel .tle .mid b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.glass-hub .dlmenu{padding:6px;gap:0;max-height:min(420px,calc(100dvh - 24px));overflow:auto;scrollbar-width:thin}
body.glass-hub .dlmenu .dlsep{padding:6px 10px 2px;margin-top:3px;font-size:10px;line-height:1.4}
body.glass-hub .dlmenu .dlsep:empty{margin:4px 3px;padding:0}
body.glass-hub .gh-download-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}
body.glass-hub .dlmenu .gh-download-options button{justify-content:center;padding-inline:6px;background:var(--gh-selected)}
@media(hover:hover) and (pointer:fine){
 body.glass-hub .dlmenu button,body.glass-hub .umenu button,body.glass-hub .gh-select-popup button{min-height:32px;padding:6px 10px;font-size:12px;line-height:20px;border-radius:8px}
 body.glass-hub .gh-select-popup{gap:1px;padding:5px}
 body.glass-hub .gh-select-group{padding:6px 10px 2px}
}
body.glass-hub #infoPanel .tlkids{padding-right:6px}
body.glass-hub #listBar #chipTools>button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;gap:0;line-height:1;position:relative}
body.glass-hub #listBar #chipTools>button>svg{display:block;flex:none;margin:0;vertical-align:middle}
body.glass-hub #listBar #chipTools .fdot{position:absolute;right:7px;top:7px;margin:0}
@media(width > 900px){
 body.glass-hub #hubWrap{--gh-work-height:clamp(480px,calc(100dvh - 310px),760px)}
 body.glass-hub #sideNav{align-self:stretch}
 body.glass-hub #ghPreview .gh-preview-shell{flex:1;min-height:0}
}
body.glass-hub #ghPreviewPort{scrollbar-width:none;touch-action:pan-x pan-y;overscroll-behavior:contain}#ghPreviewPort::-webkit-scrollbar{display:none}
#ghPreviewCanvas{position:relative;overflow:hidden}#ghPreviewCanvas iframe{position:absolute;top:0}#ghPanSurface{display:none;position:absolute;inset:0;z-index:1;touch-action:none;cursor:grab}#ghPanSurface.active{display:block}#ghPanSurface.dragging{cursor:grabbing}
body.glass-hub #mainCol,body.glass-hub #projects{scrollbar-width:none}body.glass-hub #mainCol::-webkit-scrollbar,body.glass-hub #projects::-webkit-scrollbar{display:none}
body.glass-hub #infoPanel .tle>.cv{color:var(--muted)}
body.glass-hub #infoPanel .mtgc-body{background:var(--gh-selected);border:0;border-radius:11px;margin:6px 0;padding:8px 10px;display:flex;flex-direction:column;align-items:stretch;gap:4px}
body.glass-hub #infoPanel .mtgc-body[hidden]{display:none}
body.glass-hub #infoPanel .mtgc-body .cpy{position:static;align-self:flex-end;min-width:44px;height:44px;flex:none;margin:-4px -4px 0 0}
body.glass-hub #infoPanel .mtgc-txt{max-height:none;height:auto;overflow:visible;margin:0;padding:0;overflow-wrap:anywhere;min-width:0}
body.glass-hub #ipBody::-webkit-scrollbar{display:none}
body.glass-hub #ghPosition{top:12px}
@media(max-width:900px){body.glass-hub #ghPosition{top:38px}}
html:not([data-theme=dark]) body.glass-hub #infoPanel .tle .ei,html:not([data-theme=dark]) body.glass-hub #infoPanel .mtgc-top .vb{background:rgba(45,60,76,.10);color:#425364;box-shadow:none}
body.glass-hub .gh-history-title .gh-icon{display:inline-flex}
body.glass-hub #ghHistoryToggle{width:44px;min-width:44px;height:44px;min-height:44px;flex:none;padding:0;border-radius:12px;background:var(--gh-selected)}
@media(width > 900px){
 body.glass-hub #hubWrap #infoPanel{padding:12px 6px 12px 14px}
 body.glass-hub #infoPanel .gh-history-title{min-height:44px}
 body.glass-hub #hubWrap.gh-history-closed #infoPanel:not([hidden]){display:flex;padding:12px 6px;align-items:center;cursor:pointer}
 body.glass-hub #hubWrap.gh-history-closed #infoPanel>:not(.gh-history-title):not(#wsVersionRail),body.glass-hub #hubWrap.gh-history-closed .gh-history-title h2{display:none!important}
 body.glass-hub #hubWrap.gh-history-closed .gh-history-title{margin-bottom:0}
}
body.glass-hub #sideNav{isolation:isolate;transform:translateZ(0);backface-visibility:hidden;contain:paint}
body.glass-hub #sideNav{-webkit-backdrop-filter:none}
body.glass-hub #sideNav::before{content:"";position:absolute;pointer-events:none;z-index:-2;left:calc(-1*var(--gh-nav-x,0px));top:calc(-1*var(--gh-nav-y,0px));width:100vw;height:100dvh;background:var(--gh-bg);filter:var(--gh-blur)}
body.glass-hub #sideNav::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;background:var(--gh-surface);border-radius:inherit}
body.glass-hub #sideNav .sn-item{transition:background-color .15s ease,color .15s ease,box-shadow .15s ease}
@media(hover:hover){
 body.glass-hub #sideNav .sn-item:hover{background:rgba(45,60,76,.10);color:var(--ink);box-shadow:inset 0 0 0 1px rgba(45,60,76,.08)}
 html[data-theme=dark] body.glass-hub #sideNav .sn-item:hover{background:rgba(225,235,243,.16);box-shadow:inset 0 0 0 1px rgba(225,235,243,.12)}
 body.glass-hub #sideNav .sn-item:hover .sn-ico{opacity:1}
}
@media(prefers-reduced-motion:reduce){body.glass-hub #sideNav .sn-item{transition:none}}
body.glass-hub #sideNav .sn-item .sn-n{width:16px;text-align:center}
body.glass-hub #sideNav .gh-brand-name{font-size:12.5px;font-weight:700;letter-spacing:-.02em;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gh-rail-toggle{flex:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;border-radius:10px;background:none;color:var(--muted);cursor:pointer}
@media (hover:hover){ .gh-rail-toggle:hover{background:var(--gh-selected);color:var(--ink)} }
.gh-rail-toggle:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
body.glass-hub.nav-rail #sideNav .gh-brand-name,body.glass-hub.nav-rail #sideNav .sn-lbl,body.glass-hub.nav-rail #sideNav .sn-n,body.glass-hub.nav-rail #sideNav .sn-sec{display:none}
body.glass-hub.nav-rail #sideNav .sn-item{width:44px;height:44px;padding:0;gap:0;justify-content:center;border-radius:13px;margin-inline:auto}
body.glass-hub.nav-rail #sideNav .sn-item .sn-dot{display:none}
body.glass-hub.nav-rail #sideNav .sn-foot{align-items:center}
body.glass-hub.nav-rail #sideNav .sn-item.on{background:var(--gh-selected)}
body.glass-hub.nav-rail #sideNav .sn-item.priv{position:relative}
@media(max-width:900px){
  body.glass-hub.nav-rail #sideNav .gh-brand-name,body.glass-hub.nav-rail #sideNav .sn-lbl,body.glass-hub.nav-rail #sideNav .sn-n{display:revert}
  body.glass-hub.nav-rail #sideNav .sn-item{width:100%;height:44px;padding:0 9px;gap:8px;justify-content:flex-start;border-radius:12px}
  body.glass-hub.nav-rail #sideNav .sn-item .sn-dot{display:inline-block}
  .gh-rail-toggle{display:none}
}
@media(min-width:901px){
  body.glass-hub #hubWrap{align-items:stretch}
  body.glass-hub #sideNav{align-self:stretch;top:auto;min-height:0}
  body.glass-hub #mainCol{align-self:stretch}
  body.glass-hub #infoPanel{align-self:stretch;top:auto;flex-direction:column}
  body.glass-hub #infoPanel #ipBody{flex:1;min-height:0;overflow:auto}
  body.glass-hub #ghPreview{align-self:stretch}
  body.glass-hub #ghPreview .gh-preview-shell{flex:1 1 auto;min-height:0;height:auto;display:flex;flex-direction:column}
  body.glass-hub #ghPreviewPort{flex:1}
  body.glass-hub footer{padding:12px 1rem 14px;font-size:.72rem}
}
@media(min-width:901px){
  body.glass-hub>header{padding-left:calc(28px + var(--col-proj,240px))}
  body.glass-hub.nav-rail>header{padding-left:84px}
}
body.glass-hub.nav-rail #sideNav .sn-foot{border-top:1px solid var(--nav-line);padding-top:6px;margin-top:6px}
body.glass-hub.nav-rail #sideNav .sn-foot .sn-item{width:44px;height:44px}
body.glass-hub.nav-rail #sideNav .sn-ico{width:17px;height:17px}
body.glass-hub.nav-rail #sideNav .sn-scroll{gap:4px;align-items:center;scrollbar-width:none}
body.glass-hub.nav-rail #sideNav .sn-scroll::-webkit-scrollbar{display:none}
body.glass-hub #infoPanel .gh-history-title{margin-bottom:8px}
body.glass-hub #infoPanel .gh-history-title h2{font-size:14.5px}
body.glass-hub #infoPanel .gh-history-title small{font-size:9.5px;margin-left:5px}
body.glass-hub #infoPanel .vbadge{font-size:10px}
body.glass-hub #infoPanel .tlkids{margin-left:11px;padding-left:9px}
body.glass-hub #infoPanel .tle,body.glass-hub #infoPanel .tlnext{font-size:10.5px}
body.glass-hub #infoPanel .annoi .p{min-width:30px;min-height:30px;font-size:10.5px;position:relative}
body.glass-hub #infoPanel .annoi .p::after{content:"";position:absolute;top:50%;left:50%;width:44px;height:44px;transform:translate(-50%,-50%)}
@media(min-width:901px){
  body.glass-hub #infoPanel .tle>.ei{margin-top:1px}
  body.glass-hub #infoPanel .tle b{-webkit-box-orient:vertical}
  body.glass-hub #infoPanel .tle>.d{margin-top:2px}
  body.glass-hub #infoPanel .tle>.cv{margin-top:1px}
}
body.glass-hub #listBar .vtoggle{background:none;padding:0;gap:0;box-shadow:none;border:0}
body.glass-hub #listBar .vtoggle button{background:transparent;box-shadow:none}
body.glass-hub #listBar .vtoggle button.on{background:var(--gh-selected);box-shadow:none}
body.glass-hub #chipTools .chip{background:none;border:0;box-shadow:none;color:var(--ink)}
body.glass-hub #chipTools .chip.on{background:var(--gh-selected)}
body.glass-hub #listBar button:active{background:var(--gh-selected)}
@media (hover:hover){
  body.glass-hub #listBar .vtoggle button:not(.on):hover,body.glass-hub #chipTools .chip:not(.on):hover{background:var(--gh-selected)}
}
@media(min-width:901px){
}
@media(min-width:901px){
  .gh-resizer{grid-row:2;width:10px;align-self:stretch;position:relative;z-index:6;cursor:col-resize;border:0;background:none;padding:0;touch-action:none}
  .gh-resizer[data-col="proj"]{grid-column:1;grid-row:1/3;justify-self:end;margin-right:-10px}
  body.glass-hub.nav-rail .gh-resizer[data-col="proj"]{display:none}
  .gh-resizer[data-col="list"]{grid-column:2;justify-self:end;margin-right:-10px}
  .gh-resizer[data-col="hist"]{grid-column:4;justify-self:start;margin-left:-10px}
  .gh-resizer::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:44px;transform:translateX(-50%)}
  .gh-resizer::after{content:"";position:absolute;top:50%;left:50%;width:3px;height:30px;border-radius:99px;background:var(--ink);opacity:.12;transform:translate(-50%,-50%);transition:opacity .15s ease,height .15s ease}
  @media (hover:hover){ .gh-resizer:hover::after{opacity:.3;height:44px} }
  .gh-resizer:focus-visible::after,.gh-resizer.on::after{opacity:.45;height:44px}
  .gh-resizer:focus-visible{outline:none}
  body.glass-hub.gh-resizing{cursor:col-resize;user-select:none}
  body.glass-hub.gh-resizing iframe{pointer-events:none}
  body.glass-hub #hubWrap.gh-history-closed .gh-resizer[data-col="hist"]{display:none}
}
@media(max-width:900px){ .gh-resizer{display:none} }
@media (prefers-reduced-motion:reduce){ .gh-resizer::after{transition:none} }
@media(min-width:901px){
  body.glass-hub #infoPanel .gh-history-title{margin-bottom:10px;gap:6px}
  body.glass-hub #infoPanel .gh-history-title h2{font-size:14.5px;letter-spacing:-.02em}
  body.glass-hub #infoPanel .gh-history-title small{font-size:9.5px;margin-left:5px}
  body.glass-hub #infoPanel .tlkids{margin-left:11px;padding-left:10px;padding-right:9px;margin-bottom:3px}
  body.glass-hub #infoPanel .tle{display:flex;align-items:center;gap:6px;min-height:34px;padding:4px 0;flex-wrap:nowrap}
  body.glass-hub #infoPanel .tle>.ei{flex:none!important;width:20px;height:20px}
  body.glass-hub #infoPanel .tle>.ipib{flex:none!important;width:20px;height:20px;min-width:0;padding:0}
  body.glass-hub #infoPanel .tle>.ipib svg{width:14px;height:14px}
  body.glass-hub #infoPanel .tle>.mid{flex:1 1 auto;min-width:0}
  body.glass-hub #infoPanel .tle b{font-size:11.5px;line-height:1.4;display:block;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:unset}
  body.glass-hub #infoPanel .tle>.d{flex:none;font-size:10px}
  body.glass-hub #infoPanel .tle>.cv{flex:none;width:20px;margin:0;display:flex;justify-content:center}
  body.glass-hub #infoPanel .tle>.ipib,body.glass-hub #infoPanel .tle>button:not(.ipib){flex:none}
  body.glass-hub #infoPanel .mtgc-top{grid-template-columns:22px minmax(0,1fr) 44px auto}
  body.glass-hub #infoPanel .mtgc-top>.acts{display:flex;gap:4px;justify-content:flex-end}
  body.glass-hub #infoPanel .mtgc-top [data-mview]{order:1}
  body.glass-hub #infoPanel .mtgc-top .ipib{flex:none;width:20px;min-width:0;height:20px;padding:0;margin:0}
  body.glass-hub #infoPanel .mtgc-top .ipib svg{width:15px;height:15px}
  body.glass-hub #infoPanel .annolist{gap:5px;margin:2px 0 5px}
  body.glass-hub #infoPanel .annoi{line-height:1.5;min-width:0}
  body.glass-hub #infoPanel .annoi .x{min-width:0;overflow-wrap:anywhere}
  body.glass-hub #infoPanel .annoi .p{min-width:26px;min-height:26px;font-size:10px;position:relative}
  body.glass-hub #infoPanel .annoi .p::after{content:"";position:absolute;top:50%;left:50%;width:44px;height:44px;transform:translate(-50%,-50%)}
  body.glass-hub #infoPanel .tlnext{font-size:11px;min-width:0}
  body.glass-hub #infoPanel .tlnext b{font-size:11.5px}
}
body.glass-hub .review-count{color:var(--muted);display:inline-flex;align-items:center;justify-content:center;gap:3px;min-height:25px;padding:4px 6px;border-radius:8px}
body.glass-hub .review-pending .review-count{background:#f2f962;color:#262b10}
body.glass-hub .review-pending .review-count svg{color:inherit}
body.glass-hub #listBar .lb-title{align-items:center;min-width:0}
body.glass-hub #lbTitle{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.glass-hub #lbCount{flex:none;white-space:nowrap}
body.glass-hub #listBar #btnNew{margin-left:auto;flex:none;justify-content:center;width:44px;min-width:44px;height:44px;padding:0;background:none;color:var(--ink);box-shadow:none}
@media(hover:hover){body.glass-hub #listBar #btnNew:hover{background:var(--gh-selected)}}
@media(max-width:640px){body.glass-hub #listBar #btnNew svg{width:18px;height:18px}}
body.glass-hub #sideNav .sn-project-select,body.glass-hub #sideNav .sn-project-select.on{flex:1;min-width:0;padding:0 5px;gap:5px;background:none}
body.glass-hub #sideNav .sn-item:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}
body.glass-hub #listBar{align-items:center}
body.glass-hub #listBar .lb-title{width:100%;flex-basis:100%;min-height:28px}
body.glass-hub #listBar .lb-tools{display:flex;align-items:center;gap:4px;flex:none;max-width:100%}
body.glass-hub #listBar #chipTools{margin:0;justify-content:flex-start;flex-wrap:nowrap}
body.glass-hub #listBar #btnNew{margin:0 0 0 auto}
body.glass-hub .project-menu{min-width:176px}
body.glass-hub .project-menu button{min-height:44px}
body.glass-hub .project-menu button:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}
body.glass-hub #dlgProject.name-only{max-width:420px}

.gh-preview-error{color:var(--ink);gap:12px;padding:32px 24px}
.gh-preview-error>svg{flex:none;color:var(--muted)}
.gh-preview-error h2{margin:4px 0 0;font-size:20px;line-height:1.5;color:var(--ink)}
.gh-preview-error>p{max-width:46ch;margin:0;color:var(--muted);line-height:1.8}
.gh-preview-error .gh-preview-filename{margin-top:8px;font-size:12px;overflow-wrap:anywhere}
.gh-preview-recovery{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:12px}
.gh-preview-recovery .hbtn{min-height:44px;padding:9px 16px}
.gh-preview-error details{max-width:46ch;margin-top:12px;text-align:left;font-size:12px;color:var(--muted)}
.gh-preview-error summary{display:flex;align-items:center;min-height:44px;cursor:pointer;justify-content:center;text-decoration:underline;text-underline-offset:3px}
.gh-preview-error details p{overflow-wrap:anywhere}
@media(max-width:640px){.gh-preview-error{padding:24px 16px}.gh-preview-error h2{font-size:18px}}
