/* ============================================================================
   congress-member.css — /Congress/Member record page in the "Corrupted Desktop"
   theme, without CRT scanlines.
   ----------------------------------------------------------------------------
   Layers on css/corrupted-desktop.css and is scoped under
   .tmpl-corrupted-desktop.tt-congress-member; theme tokens (--crt-*, --bevel-*,
   --sp-*, --vw-*) are inherited from the wrapper. The tt-bp__* primitives are
   per-page copies of congress-bill.css's set (established precedent; a shared
   extraction is a noted follow-up).
   ========================================================================== */

/* ---------- 0. No CRT scanlines here --------------------------------------- */
.tmpl-corrupted-desktop.tt-congress-member .tt-hero::after,
.tmpl-corrupted-desktop.tt-congress-member .tt-explorer::after{ content:none; }

/* ---------- 1. Hero masthead ----------------------------------------------- */
.tmpl-corrupted-desktop.tt-congress-member .tt-hero,
.tmpl-corrupted-desktop.tt-congress-member .tt-record-window{
    height:clamp(300px,34vw,400px);
}
.tmpl-corrupted-desktop.tt-congress-member .tt-congress-member__title-bar-text{
    font-size:12px; font-weight:bold;
}
.tmpl-corrupted-desktop.tt-congress-member .tt-congress-member__crumb{ color:#000; font-size:12px; }
.tmpl-corrupted-desktop.tt-congress-member .tt-congress-member__crumb a{
    color:var(--crt-navy-1); text-decoration:underline;
}
.tmpl-corrupted-desktop.tt-congress-member .tt-congress-member__back{
    flex:0 0 auto; font-size:12px; color:var(--crt-navy-1); text-decoration:underline;
    padding:0 8px; white-space:nowrap;
}
.tmpl-corrupted-desktop.tt-congress-member .tt-desktop-folder{
    display:flex; flex-direction:column; padding:6px;
}
.tmpl-corrupted-desktop.tt-congress-member .tt-masthead{
    flex:1 0 auto; min-height:100%; width:100%;
    display:flex; flex-direction:column; justify-content:center;
    padding:var(--sp-4);
    background:
        radial-gradient(ellipse at 50% 0%, rgba(1,205,254,.10), transparent 60%),
        #0a0a14;
    box-shadow:var(--bevel-in);
    color:#fff;
}
.tmpl-corrupted-desktop.tt-congress-member .tt-masthead__row{
    display:flex; align-items:center; gap:var(--sp-5); justify-content:center;
}
.tmpl-corrupted-desktop.tt-congress-member .tt-masthead__photo{
    flex:0 0 140px; width:140px; height:172px; object-fit:cover; object-position:top;
    background:#fff; padding:4px; box-shadow:var(--bevel-out);
}
.tmpl-corrupted-desktop.tt-congress-member .tt-masthead__id{
    min-width:0; display:flex; flex-direction:column; gap:var(--sp-2); text-align:left;
}
.tmpl-corrupted-desktop.tt-congress-member .tt-masthead__code{
    margin:0; font-family:"VT323",monospace; font-size:17px; letter-spacing:2px;
    color:var(--vw-cyan); text-shadow:var(--vw-glow-cyan);
}
.tmpl-corrupted-desktop.tt-congress-member .tt-masthead__code.is-warning{ color:var(--crt-amber); text-shadow:none; }
.tmpl-corrupted-desktop.tt-congress-member .tt-masthead__title{
    font-size:clamp(1.4rem,2.8vw,2.2rem); letter-spacing:1px; line-height:1.1;
    text-align:left; animation:none;
}
.tmpl-corrupted-desktop.tt-congress-member .tt-masthead__line{
    font-family:"VT323",monospace; font-size:17px; letter-spacing:.5px; color:#c8c8e0;
}
.tmpl-corrupted-desktop.tt-congress-member .tt-masthead__line.is-dim{ color:#9a9ab8; }
.tmpl-corrupted-desktop.tt-congress-member .tt-masthead__links{ margin-top:var(--sp-1); }

/* Party chips (shared vocabulary with the Congress landing rows). */
.tmpl-corrupted-desktop.tt-congress-member .tt-chip{
    display:inline-block; padding:0 5px; margin-right:6px;
    font-family:"VT323",monospace; font-size:14px; line-height:16px;
    color:#fff; box-shadow:var(--bevel-out); vertical-align:1px;
}
.tmpl-corrupted-desktop.tt-congress-member .tt-chip--D{ background:var(--crt-navy-2); }
.tmpl-corrupted-desktop.tt-congress-member .tt-chip--R{ background:var(--crt-error); }
.tmpl-corrupted-desktop.tt-congress-member .tt-chip--I{ background:var(--crt-amber); color:#000; }

/* ---------- 2. Shared record primitives (tt-bp__*) -------------------------- */
.tmpl-corrupted-desktop.tt-congress-member .tt-bp__status{
    padding:var(--sp-3); text-align:center;
    font-family:"VT323",monospace; font-size:17px; color:var(--crt-dark);
}
.tmpl-corrupted-desktop.tt-congress-member .tt-bp__status.is-warning{ color:#7a4b00; }
.tmpl-corrupted-desktop.tt-congress-member .tt-bp__status.is-error{ color:var(--crt-error); }
.tmpl-corrupted-desktop.tt-congress-member .tt-bp__status a{ color:var(--crt-navy-1); }

.tmpl-corrupted-desktop.tt-congress-member .tt-bp__grid{
    display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--sp-1) var(--sp-3);
    padding:var(--sp-2); margin-bottom:var(--sp-2);
    background:var(--crt-face); box-shadow:var(--bevel-out);
}
.tmpl-corrupted-desktop.tt-congress-member .tt-bp__cell{ min-width:0; }
.tmpl-corrupted-desktop.tt-congress-member .tt-bp__label{
    font-family:"VT323",monospace; font-size:15px; color:var(--crt-dark); letter-spacing:1px;
}
.tmpl-corrupted-desktop.tt-congress-member .tt-bp__value{ font-size:13px; font-weight:700; overflow-wrap:break-word; }

.tmpl-corrupted-desktop.tt-congress-member .tt-bp__section{ margin-bottom:var(--sp-3); }
.tmpl-corrupted-desktop.tt-congress-member .tt-bp__h{
    font-family:"VT323",monospace; font-size:16px; font-weight:bold; color:var(--crt-navy-1);
    letter-spacing:1px; border-bottom:1px solid var(--crt-shadow); margin-bottom:var(--sp-1);
}
.tmpl-corrupted-desktop.tt-congress-member .tt-bp__line{ font-size:13px; line-height:1.35; margin-bottom:3px; color:#000; }
.tmpl-corrupted-desktop.tt-congress-member .tt-bp__line b{
    font-family:"VT323",monospace; font-weight:normal; font-size:15px; color:var(--crt-dark);
}
.tmpl-corrupted-desktop.tt-congress-member .tt-bp__line a{ color:var(--crt-navy-1); text-decoration:underline; }
.tmpl-corrupted-desktop.tt-congress-member .tt-bp__line a:hover{ color:var(--crt-navy-2); }

.tmpl-corrupted-desktop.tt-congress-member .tt-bp__chips{ display:flex; flex-wrap:wrap; gap:var(--sp-1); }
.tmpl-corrupted-desktop.tt-congress-member .tt-bp__chip{
    padding:0 6px; background:var(--crt-face); box-shadow:var(--bevel-out);
    font-family:"VT323",monospace; font-size:15px; color:#000; line-height:20px;
}
.tmpl-corrupted-desktop.tt-congress-member .tt-bp__chip.is-policy{ background:var(--crt-navy-1); color:#fff; }

.tmpl-corrupted-desktop.tt-congress-member .tt-bp__more{
    margin-top:var(--sp-1); font-family:"VT323",monospace; font-size:15px; color:var(--crt-shadow);
}

/* ---------- 3. Sidebar + rails ---------------------------------------------- */
.tmpl-corrupted-desktop.tt-congress-member .tt-record-window{
    display:flex; flex-direction:column; overflow:hidden;
}
.tmpl-corrupted-desktop.tt-congress-member .tt-record-body{
    flex:1 1 auto; min-height:0; overflow-y:auto;
}
.tmpl-corrupted-desktop.tt-congress-member .tt-rail-body{ max-height:420px; }

.tmpl-corrupted-desktop.tt-congress-member .tt-bp__row{
    padding:var(--sp-2); margin-bottom:var(--sp-2);
    background:var(--crt-face); box-shadow:var(--bevel-out); color:#000;
}
.tmpl-corrupted-desktop.tt-congress-member a.tt-bp__row{ display:block; text-decoration:none; }
.tmpl-corrupted-desktop.tt-congress-member a.tt-bp__row:hover,
.tmpl-corrupted-desktop.tt-congress-member a.tt-bp__row:focus-visible{
    box-shadow:var(--bevel-in); background:var(--crt-face-2); color:#000;
}
.tmpl-corrupted-desktop.tt-congress-member a.tt-bp__row:focus-visible{
    outline:2px solid var(--crt-navy-2); outline-offset:1px;
}
.tmpl-corrupted-desktop.tt-congress-member .tt-bp__row-head{
    display:flex; justify-content:space-between; gap:var(--sp-2);
    font-family:"VT323",monospace; font-size:15px; color:var(--crt-navy-1); line-height:1.1;
}
.tmpl-corrupted-desktop.tt-congress-member .tt-bp__row-title{
    margin:3px 0 2px; font-size:13px; font-weight:700; line-height:1.25;
}
.tmpl-corrupted-desktop.tt-congress-member .tt-bp__row-sub{
    font-family:"VT323",monospace; font-size:14px; color:var(--crt-dark); line-height:1.2;
}

/* Supporter rows: rank + party chip + name link + count. */
.tmpl-corrupted-desktop.tt-congress-member .tt-supporter{
    display:flex; align-items:center; gap:var(--sp-2);
}
.tmpl-corrupted-desktop.tt-congress-member .tt-supporter__rank{
    flex:0 0 28px; text-align:center;
    font-family:"VT323",monospace; font-size:18px; color:var(--crt-navy-1);
}
.tmpl-corrupted-desktop.tt-congress-member .tt-supporter__body{ min-width:0; flex:1 1 auto; }
.tmpl-corrupted-desktop.tt-congress-member .tt-supporter__count{
    flex:0 0 auto; text-align:right;
    font-family:"VT323",monospace; font-size:15px; color:var(--crt-dark); white-space:nowrap;
    /* it's a <button> now: strip 7.css button chrome (incl. its box-shadow bevel and
       min-width), keep the row look, signal clickability */
    border:0; background:transparent; box-shadow:none; padding:0; margin:0;
    min-width:0; min-height:0; cursor:pointer;
    text-decoration:underline dotted;
    text-underline-offset:2px; /* keep the dots clear of the digits */
}
.tmpl-corrupted-desktop.tt-congress-member .tt-supporter__count:hover{
    color:var(--crt-navy-1); text-decoration:underline;
}
.tmpl-corrupted-desktop.tt-congress-member .tt-supporter__count:focus-visible{
    outline:2px solid var(--crt-navy-2); outline-offset:1px;
}
/* win7.css paints button hover with two absolutely-positioned pseudo-elements and pulses
   :focus with an animation - neither yields to specificity (see corrupted-desktop.css s22a). */
.tmpl-corrupted-desktop.tt-congress-member .tt-supporter__count::before,
.tmpl-corrupted-desktop.tt-congress-member .tt-supporter__count::after{ content:none; }
.tmpl-corrupted-desktop.tt-congress-member .tt-supporter__count:focus{ animation:none; }

.tmpl-corrupted-desktop.tt-congress-member .tt-banner-body{ text-align:center; }
.tmpl-corrupted-desktop.tt-congress-member .tt-banner-body img{ max-width:100%; height:auto; }

/* ---------- 4. Small screens ------------------------------------------------- */
@media (max-width:991.98px){
    .tmpl-corrupted-desktop.tt-congress-member .tt-hero,
    .tmpl-corrupted-desktop.tt-congress-member .tt-record-window{ height:auto; min-height:300px; }
    .tmpl-corrupted-desktop.tt-congress-member .tt-hero__body{ height:auto; }
}
@media (max-width:575.98px){
    .tmpl-corrupted-desktop.tt-congress-member .tt-bp__grid{ grid-template-columns:1fr; }
    .tmpl-corrupted-desktop.tt-congress-member .tt-masthead__row{
        flex-direction:column; text-align:center; gap:var(--sp-3);
    }
    .tmpl-corrupted-desktop.tt-congress-member .tt-masthead__id{ text-align:center; align-items:center; }
    .tmpl-corrupted-desktop.tt-congress-member .tt-masthead__title{ text-align:center; }
    .tmpl-corrupted-desktop.tt-congress-member .tt-congress-member__back{ display:none; }
}

/* ---------- 5. Relationship-tree modal -------------------------------------- */
/* Outside the theme wrapper, so the few tokens used are declared locally. */
.tt-graph-modal{
    --crt-face:#c0c0c0; --crt-dark:#404040; --crt-navy-2:#1084d0; --crt-error:#aa0000; --crt-amber:#ffb000;
    --bevel-out: inset -1px -1px 0 #404040, inset 1px 1px 0 #fff, inset -2px -2px 0 #808080, inset 2px 2px 0 #dfdfdf;
    width:min(1200px,94vw);
}
.tt-graph-modal .tt-graph-body{ padding:8px; position:relative; /* anchors the node menu */ }

/* Left-click node menu: a small CRT context menu over the canvas. */
.tt-graph-modal .tt-graph-menu{
    position:absolute; z-index:5; min-width:200px;
    background:var(--crt-face); box-shadow:var(--bevel-out);
    font-family:"VT323",monospace;
}
.tt-graph-modal .tt-graph-menu[hidden]{ display:none; }
.tt-graph-modal .tt-graph-menu__head{
    padding:3px 8px; background:var(--crt-navy-2); color:#fff; font-size:15px;
    letter-spacing:.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.tt-graph-modal .tt-graph-menu__item{
    display:block; width:100%; padding:5px 10px; border:0; margin:0;
    background:transparent; box-shadow:none; text-align:left; cursor:pointer;
    font-family:"VT323",monospace; font-size:16px; color:#000;
}
/* win7.css button chrome suppression (pseudo-element hover overlays + focus pulse). */
.tt-graph-modal .tt-graph-menu__item::before,
.tt-graph-modal .tt-graph-menu__item::after{ content:none; }
.tt-graph-modal .tt-graph-menu__item:focus{ animation:none; }
.tt-graph-modal .tt-graph-menu__item:hover:not([disabled]),
.tt-graph-modal .tt-graph-menu__item:focus-visible:not([disabled]){
    background:var(--crt-navy-2); color:#fff; outline:none;
}
.tt-graph-modal .tt-graph-menu__item[disabled]{ color:#808080; cursor:default; }
.tt-graph-modal .tt-graph-canvas{
    height:min(72vh,760px); background:#0a0a14; box-shadow:var(--bevel-out);
}
.tt-graph-modal .tt-graph-canvas canvas:focus{ outline:none; }
.tt-graph-modal .tt-graph-legend{
    display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap;
    padding:6px 2px 0; font-family:"VT323",monospace; font-size:15px; color:var(--crt-dark);
}
.tt-graph-modal .tt-key{
    display:inline-block; width:10px; height:10px; margin:0 3px; vertical-align:-1px;
}
.tt-graph-modal .tt-key.is-d{ background:var(--crt-navy-2); }
.tt-graph-modal .tt-key.is-r{ background:var(--crt-error); }
.tt-graph-modal .tt-key.is-i{ background:var(--crt-amber); }

/* Docked launcher for the relationship-tree modal: a full-width CRT program row that sits
   flush under the supporter list, in the same bevel family as the rows above it. */
.tmpl-corrupted-desktop.tt-congress-member .tt-graph-launch{
    display:flex; align-items:center; gap:var(--sp-3); width:100%;
    padding:var(--sp-2) var(--sp-3); border:0; border-top:2px solid var(--crt-shadow);
    background:var(--crt-face); box-shadow:var(--bevel-out);
    cursor:pointer; text-align:left; font-family:Tahoma,"Segoe UI",sans-serif;
}
.tmpl-corrupted-desktop.tt-congress-member .tt-graph-launch[hidden]{ display:none; }
/* Same win7.css button-chrome suppression as the supporter count above. */
.tmpl-corrupted-desktop.tt-congress-member .tt-graph-launch::before,
.tmpl-corrupted-desktop.tt-congress-member .tt-graph-launch::after{ content:none; }
.tmpl-corrupted-desktop.tt-congress-member .tt-graph-launch:focus{ animation:none; }
.tmpl-corrupted-desktop.tt-congress-member .tt-graph-launch:hover,
.tmpl-corrupted-desktop.tt-congress-member .tt-graph-launch:focus-visible{
    box-shadow:var(--bevel-in); background:var(--crt-face-2);
}
.tmpl-corrupted-desktop.tt-congress-member .tt-graph-launch:focus-visible{
    outline:2px solid var(--crt-navy-2); outline-offset:-4px;
}
.tmpl-corrupted-desktop.tt-congress-member .tt-graph-launch__glyph{
    flex:0 0 34px; width:34px; height:34px;
    background:#0a0a14 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34'%3E%3Cpath d='M17 11 L8 24 M17 11 L26 24 M8 24 L26 24' stroke='%233a3a5e' stroke-width='1.5'/%3E%3Ccircle cx='17' cy='11' r='4' fill='%2301cdfe'/%3E%3Ccircle cx='8' cy='24' r='3' fill='%23ff71ce'/%3E%3Ccircle cx='26' cy='24' r='3' fill='%2305ffa1'/%3E%3C/svg%3E") center/26px no-repeat;
    box-shadow:var(--bevel-in);
}
.tmpl-corrupted-desktop.tt-congress-member .tt-graph-launch__text{
    display:flex; flex-direction:column; min-width:0;
}
.tmpl-corrupted-desktop.tt-congress-member .tt-graph-launch__title{
    font-family:"VT323",monospace; font-size:17px; font-weight:bold;
    color:var(--crt-navy-1); letter-spacing:.5px; line-height:1.1;
}
.tmpl-corrupted-desktop.tt-congress-member .tt-graph-launch__sub{
    font-family:"VT323",monospace; font-size:14px; color:var(--crt-dark); line-height:1.2;
}
.tmpl-corrupted-desktop.tt-congress-member .tt-graph-launch__go{
    margin-left:auto; font-family:"VT323",monospace; font-size:24px; color:var(--crt-navy-2);
    transition:transform .1s ease; line-height:1;
}
.tmpl-corrupted-desktop.tt-congress-member .tt-graph-launch:hover .tt-graph-launch__go,
.tmpl-corrupted-desktop.tt-congress-member .tt-graph-launch:focus-visible .tt-graph-launch__go{
    transform:translateX(3px);
}

/* ---------- 6. Shared-bills modal ------------------------------------------- */
/* Outside the theme wrapper (like the graph modal), so tokens are local. */
.tt-bills-modal{
    --crt-face:#c0c0c0; --crt-face-2:#d4d0c8; --crt-shadow:#808080; --crt-dark:#404040;
    --crt-navy-1:#000080; --crt-navy-2:#1084d0; --crt-error:#aa0000;
    --bevel-out: inset -1px -1px 0 #404040, inset 1px 1px 0 #fff, inset -2px -2px 0 #808080, inset 2px 2px 0 #dfdfdf;
    --bevel-in:  inset 1px 1px 0 #404040, inset -1px -1px 0 #fff, inset 2px 2px 0 #808080, inset -2px -2px 0 #dfdfdf;
}
.tt-bills-modal .tt-bills-body{
    max-height:60vh; overflow-y:auto;
    /* 7.css paints .window-body white; the CRT face is easier on the eyes. */
    background:var(--crt-face-2) !important;
}
.tt-bills-modal .tt-bm-status{
    padding:12px; text-align:center; font-family:"VT323",monospace; font-size:17px; color:var(--crt-dark);
}
.tt-bills-modal a.tt-bm-row{
    display:block; padding:8px; margin-bottom:8px; text-decoration:none;
    background:var(--crt-face); box-shadow:var(--bevel-out); color:#000;
}
.tt-bills-modal a.tt-bm-row:hover,
.tt-bills-modal a.tt-bm-row:focus-visible{
    box-shadow:var(--bevel-in); background:var(--crt-face-2); color:#000;
}
.tt-bills-modal a.tt-bm-row:focus-visible{ outline:2px solid var(--crt-navy-2); outline-offset:1px; }
.tt-bills-modal .tt-bm-row-head{
    font-family:"VT323",monospace; font-size:15px; color:var(--crt-navy-1); line-height:1.1;
}
.tt-bills-modal .tt-bm-row-title{ margin-top:3px; font-size:13px; font-weight:700; line-height:1.25; }
