/* V029 hub-only visual system: asymmetric cards, geometric accents, real-data infographics. */
body:has(#hub-shell .hub-workspace-grid){background:#f2f4fc}
#hub-shell:has(.hub-workspace-grid){--hv-ink:#21254f;--hv-muted:#777c9c;--hv-blue:#4f62dd;--hv-purple:#8970ed;--hv-mint:#65c6b4;background:radial-gradient(ellipse at 90% 2%,#e6e5ff88,transparent 42%),#f2f4fc;color:var(--hv-ink)}
#hub-shell:has(.hub-workspace-grid) .hub-main{padding:26px 32px;max-width:1760px}
#hub-shell:has(.hub-workspace-grid) .hub-top{background:#f8f9ffed;border-bottom:1px solid #e6e8f4;height:90px;padding:14px 32px;gap:16px}
#hub-shell:has(.hub-workspace-grid) .ws-form{border-color:#e0e3f3;border-radius:19px;box-shadow:0 3px 16px #3d429705;padding:8px 9px 8px 19px;max-width:850px}
#hub-shell:has(.hub-workspace-grid) .ws-submit{background:#5662d7;border-radius:13px;min-height:44px}
#hub-shell:has(.hub-workspace-grid) .hub-heading{display:flex;position:relative;align-items:center;margin:0 0 16px;padding:6px 0 10px;isolation:isolate;gap:20px}
#hub-shell .hv-eyebrow{font-size:10px;letter-spacing:.2em;font-weight:700;color:#777ba1}
#hub-shell:has(.hub-workspace-grid) h1{font-size:clamp(27px,2.5vw,39px);letter-spacing:-1.8px;color:#24254c;line-height:1.3;margin:6px 0}
#hub-shell .hv-heading h1 em{font-style:normal;color:#6264d9}
#hub-shell:has(.hub-workspace-grid) .hub-heading .hub-sub{font-size:13px;margin-top:8px;color:#797e9d}
#hub-shell .hv-heading-side{display:flex;flex-direction:column;gap:8px;align-items:flex-end;z-index:1;max-width:45%}
#hub-shell .hv-date{font-size:13px;color:#535b83;font-weight:600}
#hub-shell:has(.hub-workspace-grid) .hub-heading .hub-status{font-size:11px;padding:7px 10px;background:#ffffffa8;max-width:100%;white-space:normal;border-color:#e5e7f6;border-radius:10px;word-break:keep-all}
#hub-shell .hv-hero-shape{position:absolute;width:128px;height:106px;right:28%;top:-2px;background:linear-gradient(120deg,#c3c0f13d,#d6e3ff66);clip-path:polygon(50% 0,94% 25%,94% 75%,50% 100%,6% 75%,6% 25%);transform:rotate(18deg);z-index:-1;pointer-events:none}
#hub-shell .ws-examples{margin:0 0 23px;gap:8px;font-size:11px}
#hub-shell .ws-example{background:#ffffff90;border-color:#e1e5f4;color:#717b9e;font-size:11px;padding:7px 12px;min-height:32px}
#hub-shell .hub-workspace-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:19px;align-items:stretch;margin-bottom:24px}
#hub-shell .hw-card{--hv-card:#fff;--hv-accent:#5d66d9;background:var(--hv-card);border:1px solid #e8e9f6;border-radius:26px;padding:23px;min-height:330px;box-shadow:0 6px 22px #383e7306;overflow:hidden;isolation:isolate;color:var(--hv-ink);position:relative;grid-column:span 4;transition:transform .2s,box-shadow .2s,border-color .2s}
#hub-shell .hw-card:hover{transform:translateY(-4px);box-shadow:0 16px 36px #42478d19;border-color:#b7b8e7}
#hub-shell .hw-copq{grid-column:span 6;--hv-card:#e8e8ff;--hv-accent:#5a58cf;border-color:#deddf7;background:linear-gradient(125deg,#eceaff,#e5ebff)}
#hub-shell .hw-schedule{grid-column:span 3;--hv-accent:#695fd8}
#hub-shell .hw-nmp{grid-column:span 3;--hv-accent:#318d80;--hv-card:#e9f6f2;border-color:#daeee7}
#hub-shell .hw-community{grid-column:span 3;--hv-card:#303260;--hv-accent:#bbb3ff;background:linear-gradient(135deg,#3c3a79,#272b50);color:#fff;border-color:#393966}
#hub-shell .hw-proposal{grid-column:span 5;--hv-card:#fff;--hv-accent:#6a60cd}
#hub-shell .hw-isopapers{grid-column:span 4;--hv-card:#fff4e9;--hv-accent:#be7a4d;border-color:#f1e8dc}
#hub-shell .hw-card-head{margin:0 0 10px;gap:8px;position:relative;z-index:1}
#hub-shell .hw-icon{width:37px;height:37px;border-radius:12px;color:var(--hv-accent);background:#ffffff9c}
#hub-shell .hw-icon svg{width:22px;height:22px;stroke-width:1.6}
#hub-shell .hw-access{font-size:10px;border:1px solid #ffffff70;background:#ffffff70;color:#78809e;padding:3px 8px;white-space:nowrap}
#hub-shell .hw-card h2{font-size:17px;letter-spacing:-.6px;color:var(--hv-ink);position:relative;z-index:1}
#hub-shell .hw-caption{font-size:11px;min-height:0;color:#747c9a;margin:4px 0 16px;position:relative;z-index:1}
#hub-shell .hw-open{padding-top:14px;margin-top:auto;font-size:11px;color:var(--hv-accent);position:relative;z-index:1}
#hub-shell .hw-open span{background:#ffffffa3;width:29px;height:29px;line-height:29px;color:var(--hv-accent);border:1px solid #ffffff80}
#hub-shell .hw-community h2,#hub-shell .hw-community .hv-value{color:#fff}
#hub-shell .hw-community .hw-caption,#hub-shell .hw-community .hv-small,#hub-shell .hw-community .hv-post-date{color:#c2c6e8}
#hub-shell .hw-community .hw-access{color:#deddfa;background:#ffffff12;border-color:#ffffff1b}
#hub-shell .hw-community .hw-icon,#hub-shell .hw-community .hw-open span{background:#ffffff14;border-color:#ffffff20}
#hub-shell .hw-community .hw-open{color:#dedaff}
#hub-shell .hv-value{font-size:39px;line-height:1.2;letter-spacing:-1.8px;font-weight:650;color:#262d59;font-variant-numeric:tabular-nums}
#hub-shell .hv-value small{display:inline-block;font-size:12px;font-weight:400;letter-spacing:0;margin-left:6px;color:#737b9d}
#hub-shell .hw-community .hv-value small{color:#c4c7e7}
#hub-shell .hv-label{font-size:11px;color:#757d9c;margin-bottom:5px}
#hub-shell .hv-small{font-size:11px;color:#727d97;line-height:1.6;margin-top:8px;word-break:keep-all}
#hub-shell .hv-metric-pair{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 15px;position:relative;z-index:1}
#hub-shell .hv-copq-body{display:grid;grid-template-columns:.95fr 1.25fr;gap:20px;align-items:center;margin:2px 0 13px}
#hub-shell .hv-copq-total .hv-value{font-size:clamp(37px,3.1vw,53px)}
#hub-shell .hv-copq-total .hv-value small{display:block;margin:7px 0 0;font-size:12px}
#hub-shell .hv-cost-breakdown{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:24px}
#hub-shell .hv-cost-breakdown>div{border-top:1px solid #b9bbed70;padding-top:9px}
#hub-shell .hv-cost-breakdown strong{font-size:16px;color:#42467b;font-weight:600;display:block}
#hub-shell .hv-cost-breakdown span{font-size:10px;color:#777fa3}
#hub-shell .hv-column-chart{position:relative;min-width:0}
#hub-shell .hv-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;align-items:end;padding-top:6px}
#hub-shell .hv-column{text-align:center;min-width:0;font-size:11px;color:#6d7599}
#hub-shell .hv-column>strong{display:block;margin-bottom:7px;font-size:13px;font-weight:600;color:#454b8b}
#hub-shell .hv-column-track{height:129px;margin:0 auto 9px;max-width:47px;background:#ffffff69;border-radius:25px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}
#hub-shell .hv-column-track i{display:block;flex-shrink:0;width:100%;background:#6864db}
#hub-shell .hv-column-track .hv-q{background:#a59aec}
#hub-shell .hv-legend{display:flex;align-items:center;flex-wrap:wrap;gap:12px;font-size:10px;color:#77809d;margin:12px 0 0}
#hub-shell .hv-legend span{display:inline-flex;align-items:center;gap:5px}
#hub-shell .hv-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--dot,#6864db);flex-shrink:0}
#hub-shell .hv-polygon{position:absolute;width:150px;height:150px;top:-65px;right:15px;background:#bbb5f32b;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);transform:rotate(-12deg);z-index:0;pointer-events:none}
#hub-shell .hw-nmp .hv-polygon{background:#8ed8c72b;right:-60px;top:30px}
#hub-shell .hw-isopapers .hv-polygon{background:#efcdb52b;top:-45px;right:5px}
#hub-shell .hv-donut{width:112px;height:112px;flex-shrink:0;position:relative;border-radius:50%;display:grid;place-items:center;background:#dde1f0;transform:rotate(-90deg)}
#hub-shell .hv-donut-inner{width:80%;height:80%;border-radius:50%;background:var(--hv-card);transform:rotate(90deg);display:flex;align-items:center;justify-content:center;flex-direction:column}
#hub-shell .hv-donut-inner strong{font-size:23px;font-weight:650;color:#353963;line-height:1.3;letter-spacing:-.7px}
#hub-shell .hv-donut-inner small{font-size:10px;color:#777e9c;margin-top:2px}
#hub-shell .hv-tiny-metrics{display:flex;align-items:center;gap:18px;font-size:11px;color:#7d819c}
#hub-shell .hv-tiny-metrics b{font-size:14px;font-weight:600;color:#3d4773;margin-left:5px}
#hub-shell .hv-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;padding-top:10px}
#hub-shell .hv-day{text-align:center;font-size:9px;color:#8c90ad}
#hub-shell .hv-day b{font-size:10px;color:#6b70a1;font-weight:500;display:block;margin-bottom:3px}
#hub-shell .hv-day-track{height:26px;background:#f1f0fa;border-radius:7px;display:flex;align-items:flex-end;overflow:hidden;margin-bottom:4px}
#hub-shell .hv-day-track i{display:block;width:100%;border-radius:6px;background:#b1a7ee}
#hub-shell .hv-day:first-child .hv-day-track i{background:#7164dc}
#hub-shell .hv-nmp-main{display:flex;align-items:center;justify-content:center;gap:18px;margin:0 0 14px}
#hub-shell .hv-nmp-main .hv-donut{width:132px;height:132px}
#hub-shell .hv-nmp-main .hv-donut strong{font-size:32px;color:#2c766d}
#hub-shell .hv-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;position:relative;z-index:1}
#hub-shell .hv-status-grid>span{display:flex;align-items:center;gap:5px;font-size:10px;color:#527f7c;padding:6px 8px;background:#ffffff70;border-radius:8px}
#hub-shell .hv-status-grid b{margin-left:auto;font-size:12px;font-weight:600}
#hub-shell .hv-proposal-body{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:center;margin-bottom:10px}
#hub-shell .hv-proposal-body .hv-donut{width:144px;height:144px;margin:auto}
#hub-shell .hv-proposal-body .hv-donut-inner strong{font-size:28px}
#hub-shell .hv-progress-block{margin-top:18px}.hv-progress-block>div{height:8px;background:#eeedf7;border-radius:20px;overflow:hidden;margin:6px 0}
#hub-shell .hv-progress-block i{height:100%;display:block;background:linear-gradient(90deg,#6264df,#ad90ed);border-radius:20px}
#hub-shell .hv-progress-block p{font-size:11px;color:#7e82a0;display:flex;justify-content:space-between}
#hub-shell .hv-proposal-footer{display:flex;gap:8px;margin:12px 0 4px}
#hub-shell .hv-proposal-footer>span{background:#f4f3fc;border-radius:10px;padding:8px 10px;font-size:10px;color:#767c9d;flex:1}
#hub-shell .hv-proposal-footer b{display:block;font-size:17px;font-weight:600;color:#53547e}
#hub-shell .hv-document-body{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:10px 0 12px}
#hub-shell .hv-document-body .hv-donut{width:132px;height:132px}
#hub-shell .hv-document-legend{flex:1;min-width:0}.hv-document-legend>div{display:flex;gap:6px;align-items:center;font-size:11px;color:#8c745f;padding:7px 0;border-bottom:1px solid #e8d9ca75}
#hub-shell .hv-document-legend strong{margin-left:auto;color:#785a45;font-size:12px;font-weight:600}
#hub-shell .hv-document-legend span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:105px}
#hub-shell .hv-chat-art{position:absolute;right:10px;top:56px;width:120px;height:105px;opacity:.8;pointer-events:none;z-index:0}
#hub-shell .hv-chat-art i{position:absolute;display:block;width:62px;height:48px;border-radius:16px 16px 3px 16px;transform:rotate(-12deg);background:linear-gradient(135deg,#9e88f6,#7566c2);right:18px;top:7px}
#hub-shell .hv-chat-art i:last-child{width:46px;height:37px;right:0;top:44px;transform:rotate(12deg);background:#a5c6e1}
#hub-shell .hv-post{position:relative;z-index:1;border-top:1px solid #ffffff18;padding:11px 0 5px;margin-top:9px}
#hub-shell .hv-post strong{color:#eff0ff;font-size:13px;font-weight:500;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.6}
#hub-shell .hv-post-date{font-size:10px;margin-top:6px;display:block}
#hub-shell .hw-loading{font-size:13px;color:#74809b;min-height:150px;line-height:1.7}
#hub-shell .hw-community .hw-loading{color:#d1d3ed}
#hub-shell .hv-empty-graphic{height:72px;display:flex;align-items:flex-end;gap:12px;margin:10px 0;opacity:.6}
#hub-shell .hv-empty-graphic i{display:block;width:20%;height:100%;background:repeating-linear-gradient(135deg,#bec6de40 0 4px,transparent 4px 9px);border:1px dashed #bbc4df;border-radius:12px}
#hub-shell .hv-detail-feed{border:1px solid #e0e4f2;background:#ffffff70;border-radius:18px;padding:18px 22px;margin-top:4px}
#hub-shell .hv-detail-feed>summary{cursor:pointer;font-size:13px;font-weight:600;color:#5f6588}
#hub-shell .hv-detail-feed>summary span{font-weight:400;font-size:11px;color:#9297af;margin-left:12px}
#hub-shell .hv-detail-feed[open]>.hub-content-grid{margin-top:22px}
body:has(#hub-shell .hub-workspace-grid) #pst-workspace-rail{background:#fbfbff;border-color:#e2e5f2}
body:has(#hub-shell .hub-workspace-grid) .pws-nav[aria-current=page]{background:#615fd1!important;color:white!important;border-radius:14px;box-shadow:0 8px 18px #625cd32a}
body:has(#hub-shell .hub-workspace-grid) .pws-nav[aria-current=page] .pws-mark{color:#fff;background:#ffffff20;border-color:#ffffff20}
@media(max-width:1350px){#hub-shell .hub-workspace-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:17px}#hub-shell .hw-copq{grid-column:span 6;min-height:290px}#hub-shell .hw-schedule,#hub-shell .hw-nmp,#hub-shell .hw-community,#hub-shell .hw-isopapers,#hub-shell .hw-proposal{grid-column:span 3}#hub-shell .hw-community{order:5;grid-column:span 6;min-height:190px}#hub-shell .hw-community .hv-post{max-width:75%}#hub-shell .hw-copq .hv-copq-body{grid-template-columns:1fr 1fr}#hub-shell .hw-copq .hv-column-track{height:108px}#hub-shell .hw-copq .hv-copq-body{margin-top:-30px}#hub-shell .hw-copq h2,#hub-shell .hw-copq .hw-caption{max-width:45%}}
@media(max-width:1200px){#hub-shell:has(.hub-workspace-grid) .hub-top{flex-wrap:wrap;height:auto;min-height:90px;gap:10px}#hub-shell:has(.hub-workspace-grid) .ws-form{order:2;flex-basis:100%;max-width:none}#hub-shell:has(.hub-workspace-grid) .hub-top-actions{order:1}}
@media(max-width:800px){#hub-shell:has(.hub-workspace-grid) .hub-main{padding:22px 18px}#hub-shell:has(.hub-workspace-grid) .hub-top{padding:12px 18px}#hub-shell .hv-heading-side{max-width:44%}#hub-shell:has(.hub-workspace-grid) .hub-heading .hub-status{margin-top:0}#hub-shell .hv-hero-shape{right:24%;opacity:.5}#hub-shell .hw-card{padding:20px}#hub-shell .hw-card h2{font-size:17px}}
@media(max-width:590px){#hub-shell .hub-workspace-grid{grid-template-columns:1fr;gap:15px}#hub-shell .hw-card{grid-column:span 1;order:initial;min-height:300px;border-radius:24px;padding:23px}#hub-shell .hw-copq{min-height:355px}#hub-shell .hw-copq .hv-copq-body{margin-top:8px;grid-template-columns:.9fr 1.1fr;gap:15px}#hub-shell .hw-copq h2,#hub-shell .hw-copq .hw-caption{max-width:none}#hub-shell .hv-copq-total .hv-value{font-size:39px}#hub-shell .hv-column-track{height:124px!important}#hub-shell .hv-columns{gap:9px}#hub-shell .hv-heading-side{align-items:flex-start;max-width:100%;gap:4px}#hub-shell:has(.hub-workspace-grid) .hub-heading{flex-direction:column;align-items:flex-start;gap:10px}#hub-shell .hv-date{font-size:11px}#hub-shell .hv-heading-side .hub-status{font-size:10px!important}#hub-shell .hv-hero-shape{right:0;top:12px;width:118px;height:118px}#hub-shell .hw-community{min-height:260px}#hub-shell .hw-community .hv-post{max-width:100%}#hub-shell .hv-metric-pair .hv-donut{width:126px;height:126px}#hub-shell .hv-document-body .hv-donut{width:136px;height:136px}#hub-shell .hv-detail-feed>summary span{display:block;margin:5px 0 0}#hub-shell .ws-examples>span{display:none}#hub-shell .ws-examples{gap:5px;margin-bottom:20px}#hub-shell .ws-example{font-size:10px;padding:5px 8px}}
@media(prefers-reduced-motion:reduce){#hub-shell .hw-card{transition:none}#hub-shell .hw-card:hover{transform:none}}
