/* Platform home page — product screens (hero + user portals), portal tabs and conference cards.
   Shared by the Classic and Editorial designs; colours come from each design's variables. */

/* ── Product window ── */
.pm-window{background:#fff;border:1px solid rgba(19,29,51,.12);border-radius:12px;overflow:hidden;box-shadow:0 30px 70px -30px rgba(19,29,51,.45),0 10px 24px -14px rgba(19,29,51,.25);color:#1b2433;text-align:left}
.pm-bar{display:flex;align-items:center;gap:6px;height:30px;padding:0 12px;background:#f3f4f6;border-bottom:1px solid #e5e7eb}
.pm-bar i{width:9px;height:9px;border-radius:50%;background:#d1d5db}
.pm-bar i:nth-child(1){background:#f87171}.pm-bar i:nth-child(2){background:#fbbf24}.pm-bar i:nth-child(3){background:#34d399}
.pm-bar span{flex:1;margin-left:10px;height:18px;line-height:18px;border-radius:5px;background:#fff;border:1px solid #e5e7eb;font:500 10.5px/18px "DM Sans",system-ui,sans-serif;color:#6b7280;padding:0 10px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:320px}
.pm-body{background:#f8fafc}
.pm-shot{display:block;width:100%;height:auto}

/* ── Built-in illustration of a screen ── */
.pm-app{display:grid;grid-template-columns:150px 1fr;min-height:330px;font:400 11px/1.4 "DM Sans",system-ui,sans-serif}
.pm-side{background:#0f1b33;color:rgba(255,255,255,.7);padding:12px 8px;display:flex;flex-direction:column;gap:2px}
.pm-brand{display:flex;align-items:center;gap:6px;color:#fff;font-weight:700;font-size:11.5px;padding:2px 6px 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pm-brand b{width:16px;height:16px;border-radius:4px;background:linear-gradient(135deg,#2563eb,#f97316);flex-shrink:0}
.pm-nav{padding:6px 8px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10.5px}
.pm-nav.on{background:rgba(255,255,255,.12);color:#fff;font-weight:600}
.pm-main{position:relative;padding:14px 16px 26px;display:flex;flex-direction:column;gap:10px;min-width:0}
.pm-h{font-weight:700;font-size:15px;color:#0f1b33;line-height:1.2}
.pm-h small{display:block;font-weight:400;font-size:10.5px;color:#6b7280;margin-top:3px}
.pm-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:8px}
.pm-stat{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:8px 10px;min-width:0}
.pm-stat span{display:block;color:#6b7280;font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pm-stat b{display:block;font-size:17px;color:#0f1b33;font-variant-numeric:tabular-nums;white-space:nowrap}
.pm-stat em{display:block;font-style:normal;font-size:9px;color:#059669}
.pm-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:9px 11px;min-width:0}
.pm-card-h{font-weight:700;font-size:10.5px;color:#0f1b33;margin-bottom:6px}
.pm-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 0;border-top:1px solid #f1f5f9;font-size:10.5px;color:#374151}
.pm-row:first-of-type{border-top:0}
.pm-row>span:first-child{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.pm-chip{display:inline-block;padding:2px 7px;border-radius:999px;font-size:9.5px;font-weight:600;white-space:nowrap}
.pm-ok{background:#dcfce7;color:#166534}.pm-info{background:#dbeafe;color:#1e40af}.pm-warn{background:#fef3c7;color:#92400e}.pm-bad{background:#fee2e2;color:#991b1b}.pm-mute{background:#f1f5f9;color:#475569}
.pm-btns{display:flex;gap:4px;flex-wrap:wrap}
.pm-prog{display:flex;align-items:center;gap:6px;font-variant-numeric:tabular-nums;color:#374151;flex-shrink:0}
.pm-bar-track{display:inline-block;width:70px;height:5px;border-radius:5px;background:#e5e7eb;overflow:hidden}
.pm-bar-track span{display:block;height:100%;background:#2563eb;border-radius:5px}
.pm-split{display:grid;grid-template-columns:1.5fr 1fr;gap:8px}
.pm-donut-card{display:flex;flex-direction:column;align-items:center}
.pm-donut{width:66px;height:66px;border-radius:50%;background:conic-gradient(#16a34a 0 42%,#f59e0b 42% 63%,#ef4444 63% 75%,#cbd5e1 75% 100%);-webkit-mask:radial-gradient(circle,transparent 52%,#000 53%);mask:radial-gradient(circle,transparent 52%,#000 53%);margin:2px 0 6px}
.pm-legend{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:2px 10px;font-size:9.5px;color:#374151}
.pm-legend i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#cbd5e1;margin-right:4px}
.pm-legend i.ok{background:#16a34a}.pm-legend i.warn{background:#f59e0b}.pm-legend i.bad{background:#ef4444}
.pm-steps{display:flex;gap:4px;margin:2px 0 4px}.pm-steps i{flex:1;height:5px;border-radius:5px;background:#e5e7eb}.pm-steps i.d{background:#16a34a}
.pm-journey small{color:#6b7280;font-size:9.5px}
.pm-score{display:flex;justify-content:space-between;font-size:10.5px;color:#374151;padding:2px 0}.pm-score b{color:#f59e0b;letter-spacing:1px}
.pm-lines{display:flex;flex-direction:column;gap:4px;margin-top:6px}.pm-lines i{height:6px;border-radius:4px;background:#eef2f7}
.pm-sample{position:absolute;right:10px;bottom:6px;font-size:9px;color:#9ca3af;letter-spacing:.04em;text-transform:uppercase}
@media(max-width:560px){.pm-app{grid-template-columns:1fr}.pm-side{display:none}.pm-split{grid-template-columns:1fr}}

/* ── User portals: tabs + panel ── */
.pt-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:40px 0 28px}
.pt-tab{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:transparent;color:rgba(255,255,255,.75);font:600 14px/1 "DM Sans",system-ui,sans-serif;cursor:pointer;transition:.2s}
.pt-tab:hover{color:#fff;border-color:rgba(255,255,255,.45)}
.pt-tab.on{background:#fff;color:#0f1b33;border-color:#fff}
.pt-tab:focus-visible{outline:2px solid #fff;outline-offset:3px}
.pt-panel{display:none;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:48px;align-items:center}
.pt-panel.on{display:grid}
.pt-copy h3{font-size:24px;color:#fff;margin:0 0 10px;line-height:1.2}
.pt-copy p{color:rgba(255,255,255,.72);font-size:15.5px;line-height:1.65;margin:0 0 16px}
.pt-copy ul{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:10px}
.pt-copy li{position:relative;padding-left:26px;color:rgba(255,255,255,.85);font-size:14.5px;line-height:1.5}
.pt-copy li::before{content:"✓";position:absolute;left:0;top:0;width:18px;height:18px;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:11px;line-height:18px;text-align:center}
.pt-link{color:#fff;font-weight:600;font-size:14px;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.4)}
.pt-link:hover{border-bottom-color:#fff}
@media(max-width:900px){.pt-panel.on{grid-template-columns:1fr;gap:28px}}

/* ── Conference cards ── */
.cc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:22px;margin-top:48px}
.cc{position:relative;display:flex;flex-direction:column;gap:12px;background:#fff;border:1px solid var(--border,#dde3f0);border-radius:14px;padding:22px 22px 20px;transition:border-color .2s,box-shadow .2s;min-width:0}
.cc::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;border-radius:14px 14px 0 0;background:var(--cc,var(--navy,#0a1f44))}
.cc:hover{border-color:var(--navy,#0a1f44);box-shadow:0 18px 40px -26px rgba(10,31,68,.45)}
.cc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.cc-logo{width:112px;height:56px;display:flex;align-items:center;justify-content:flex-start;flex-shrink:0}
.cc-logo img{max-width:100%;max-height:100%;object-fit:contain}
.cc-logo .cc-ini{width:48px;height:48px;border-radius:12px;background:var(--cc,var(--navy,#0a1f44));color:#fff;display:flex;align-items:center;justify-content:center;font:700 17px/1 "DM Sans",system-ui,sans-serif;letter-spacing:.04em}
.cc-badges{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.cc-status{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font:700 11px/1.2 "DM Sans",system-ui,sans-serif;text-align:right;background:#eef2f7;color:#334155}
.cc-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0}
.cc-open .cc-status{background:#dcfce7;color:#166534}
.cc-live .cc-status{background:#dbeafe;color:#1e40af}
.cc-live .cc-dot{animation:ccPulse 1.6s infinite}
@keyframes ccPulse{50%{opacity:.35}}
.cc-soon .cc-status{background:#fef3c7;color:#92400e}
.cc-muted .cc-status{background:#f1f5f9;color:#475569}
.cc-demo{padding:3px 8px;border-radius:6px;border:1px dashed #94a3b8;color:#475569;font:700 10px/1.2 "DM Sans",system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.cc-short{font:700 11px/1.3 "DM Sans",system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--muted,#6b7a99)}
.cc-title{margin:-4px 0 0;font-size:19px;line-height:1.3;font-weight:700}
.cc-title a{color:var(--navy,#0a1f44);text-decoration:none}
.cc-title a:hover{text-decoration:underline;text-underline-offset:3px}
.cc-meta{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:13.5px;color:var(--navy,#0a1f44)}
.cc-meta li{display:flex;gap:8px;align-items:flex-start}
.cc-ic{width:18px;flex-shrink:0;text-align:center}
.cc-desc{margin:0;font-size:13.5px;line-height:1.6;color:var(--muted,#6b7a99);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.cc-note{margin:0;font-size:13px;line-height:1.55;color:var(--muted,#6b7a99);background:#f8fafc;border-radius:8px;padding:8px 10px}
.cc-states{display:flex;gap:6px;flex-wrap:wrap}
.cc-st{padding:4px 9px;border-radius:6px;font-size:12px;font-weight:600;border:1px solid}
.cc-st-open{color:#166534;border-color:#bbf7d0;background:#f0fdf4}
.cc-st-soon{color:#92400e;border-color:#fde68a;background:#fffbeb}
.cc-st-closed{color:#64748b;border-color:#e2e8f0;background:#f8fafc}
.cc-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:6px}
.cc-btn{flex:1 1 auto;text-align:center;padding:10px 14px;border-radius:8px;border:1px solid var(--border,#dde3f0);color:var(--navy,#0a1f44);font:700 12.5px/1.2 "DM Sans",system-ui,sans-serif;text-decoration:none;white-space:nowrap;transition:.2s}
.cc-btn:hover{border-color:var(--navy,#0a1f44)}
.cc-btn-main{background:var(--navy,#0a1f44);border-color:var(--navy,#0a1f44);color:#fff}
.cc-btn-main:hover{opacity:.9}
.cc-done{background:#fbfbfc}
.cc-qr{font-size:12px;color:var(--muted,#6b7a99)}
.cc-qr summary{cursor:pointer}
.cc-qr img{display:block;width:110px;height:110px;margin-top:8px}
@media(max-width:640px){.cc-grid{grid-template-columns:1fr}}
/* logo that fails to load → the initials show instead */
.cc-logo .cc-ini{display:none}
.cc-logo.cc-noimg .cc-ini{display:flex}
.cc-title{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.cc-btn-main{flex-basis:100%}
/* ── Conferences as a list (Cards / List switch) ── */
.cc-view{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--border,#dde3f0);border-radius:10px;background:#fff;margin-top:22px}
.cc-view-btn{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--muted,#6b7a99);font:600 13px/1 "DM Sans",system-ui,sans-serif;padding:8px 14px;border-radius:7px;cursor:pointer}
.cc-view-btn:hover{color:var(--navy,#0a1f44)}
.cc-view-btn.on{background:var(--navy,#0a1f44);color:#fff}
.cc-view-btn:focus-visible{outline:2px solid var(--navy,#0a1f44);outline-offset:2px}
.cc-view + .cc-grid{margin-top:22px}
.cc-grid.cc-as-list{grid-template-columns:1fr;gap:10px}
.cc-as-list .cc{display:grid;grid-template-columns:76px minmax(0,1fr) minmax(190px,260px) auto;grid-template-areas:"logo short where act" "logo title where act" "logo badges where act";column-gap:20px;row-gap:3px;align-items:center;padding:14px 18px 14px 22px}
.cc-as-list .cc::before{top:0;bottom:0;right:auto;width:4px;height:auto;border-radius:14px 0 0 14px}
.cc-as-list .cc-head{display:contents}
.cc-as-list .cc-logo{grid-area:logo;width:76px;height:48px;justify-content:center}
.cc-as-list .cc-logo .cc-ini{width:42px;height:42px;font-size:15px}
.cc-as-list .cc-short{grid-area:short}
.cc-as-list .cc-title{grid-area:title;margin:0;font-size:16.5px;-webkit-line-clamp:2}
.cc-as-list .cc-badges{grid-area:badges;flex-direction:row;align-items:center;justify-content:flex-start;flex-wrap:wrap;margin-top:3px}
.cc-as-list .cc-meta{grid-area:where;font-size:13px}
.cc-as-list .cc-actions{grid-area:act;margin:0;padding:0;flex-wrap:nowrap}
.cc-as-list .cc-btn{flex:0 0 auto;padding:9px 13px}
.cc-as-list .cc-btn-main{flex-basis:auto;min-width:160px}
.cc-as-list .cc-desc,.cc-as-list .cc-note,.cc-as-list .cc-states,.cc-as-list .cc-qr{display:none}
@media(max-width:1080px){
  .cc-as-list .cc{grid-template-columns:64px minmax(0,1fr) auto;grid-template-areas:"logo short act" "logo title act" "logo badges act" "logo where act"}
}
@media(max-width:720px){
  .cc-as-list .cc{grid-template-columns:52px minmax(0,1fr);grid-template-areas:"logo short" "logo title" "badges badges" "where where" "act act";padding:14px 16px 14px 20px}
  .cc-as-list .cc-logo{width:52px;height:40px}
  .cc-as-list .cc-actions{flex-wrap:wrap;margin-top:6px}
  .cc-as-list .cc-btn{flex:1 1 auto}
  .cc-as-list .cc-btn-main{min-width:0}
}
