/* duc-member.css — /signin (split auth layout, join flow, deleted state) + /account (member area).
   WP-4. Every value is measured from tasks/design_handoff_site/dc/WEB signin.dc.html (cited as S:line);
   shared tokens come from duc-core.css :root (BUILD_PLAN §2.3) with literal fallbacks so a missing token never
   drops a colour. Breakpoints: 899px header collapse (WP-F), 759px rail→strip + auth image wrap. */

/* keyframes duc-fade / duc-in-up / duc-pulse and the 3px :focus-visible ring come from duc-core.css (WP-F) */

.duc-auth,.duc-member{
  font-family:var(--font-ui,-apple-system,BlinkMacSystemFont,'SF Pro Text','Helvetica Neue',Helvetica,'Segoe UI',Roboto,Arial,sans-serif);
  color:var(--ink,#12161B);
}
.duc-auth [hidden],.duc-member [hidden],.duc-member[hidden]{display:none!important}
.duc-auth button,.duc-member button{font-family:inherit}
.duc-auth input::placeholder,.duc-member input::placeholder{color:var(--placeholder,#8E8E93);opacity:1}
.duc-mono-f{font-family:var(--font-mono,'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace)}
.duc-todo{font-family:var(--font-mono,'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace);font-size:9.5px;font-weight:600;letter-spacing:.8px;color:var(--mono-4,#5D6355);white-space:nowrap}

/* ═ split screen (S:91-93, panelS S:576, imageS S:577) ═ */
.duc-auth{position:relative;z-index:1;min-height:100vh;display:flex;flex-wrap:wrap;padding-top:var(--header-h,88px);box-sizing:border-box}
/* First paint only: the header nav is centred, so its left edge = (viewport − nav width) / 2 (367px nav measured at 1440).
   signin.js replaces this with the measured value (inline --duc-panel-w) as soon as it runs. */
@media (min-width:900px){.duc-auth{--duc-panel-w:max(400px,calc(50vw - 183.5px))}}
.duc-auth__panel{flex:1 1 var(--duc-panel-w,400px);min-width:0;display:flex;flex-direction:column;justify-content:center;padding:48px clamp(24px,3.5vw,40px) 56px;box-sizing:border-box;background:var(--paper,#EFEDE6)}
.duc-auth__col{width:100%;max-width:400px}
.duc-auth__image{flex:1 1 calc(100% - var(--duc-panel-w,400px));min-width:360px;min-height:360px;position:relative;overflow:hidden}
/* P5: was a center/cover CSS background here (webp via image-set). The <picture> in pages/signin.html renders the same
   crop — absolutely positioned so the photo's intrinsic 1122×1402 never sizes the flex item. */
.duc-auth__photo{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center}
@media (max-width:759px){.duc-auth__image{min-height:280px}}

/* step rail (S:97-101, dashes S:584) */
.duc-auth__rail{display:flex;align-items:center;gap:12px;margin-bottom:26px}
.duc-auth__back{width:36px;height:36px;border-radius:18px;border:1px solid var(--hair,#E5E5EA);background:var(--white,#FFFFFF);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;flex:none;position:relative}
.duc-auth__back:hover{background:var(--field,#F2F2F7)}
.duc-auth__back::after{content:'';position:absolute;inset:-5px}   /* 36px + 1px border → 44px hit area */
.duc-auth__dashes{display:flex;gap:4px}
.duc-auth__dashes span{display:block;width:22px;height:4px;border-radius:2px;background:rgba(18,22,27,.15);transition:background .3s ease}
.duc-auth__dashes span.is-on{background:var(--ink,#12161B)}
.duc-auth__stepn{font-family:var(--font-mono,'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace);font-size:11px;font-weight:600;letter-spacing:1px;color:var(--body3,#5D6A75)}

/* steps (S:106,121,143,160,181) */
.duc-auth__step{margin:0;animation:duc-in-up .36s cubic-bezier(.2,.7,.2,1) both}
.duc-auth__h1{margin:0;font-size:26px;font-weight:700;letter-spacing:-.6px;line-height:32px;color:var(--ink,#12161B);text-wrap:pretty}
.duc-auth__h1:focus{outline:none}
.duc-auth__sub{margin:4px 0 0;font-size:14px;line-height:20px;color:var(--body3,#5D6A75);text-wrap:pretty}
.duc-auth__p{margin:8px 0 0;font-size:14px;line-height:20px;color:var(--body3,#5D6A75);text-wrap:pretty}
.duc-auth__notice{margin:12px 0 0;font-size:13px;line-height:18px;font-weight:600;color:var(--body2,#3E4A55);text-wrap:pretty}
.duc-auth__em{font-weight:600;color:var(--ink,#12161B)}

/* email field (S:109-112) */
.duc-auth__field{margin-top:24px;display:flex;align-items:center;gap:10px;height:48px;padding:0 14px;border-radius:10px;background:var(--field,#F2F2F7);box-sizing:border-box}
.duc-auth__field:has(input:focus-visible){box-shadow:0 0 0 2px var(--blue,#0070A0),0 0 0 6px var(--focus-ring,rgba(0,112,160,.14))}
.duc-auth__mail{flex:none}
.duc-auth__field input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:16px;color:var(--ink,#12161B);font-family:inherit;padding:0;height:100%}

/* error / status lines (S:113,168,169) */
.duc-auth__err{margin:10px 0 0;font-size:12.5px;font-weight:600;color:var(--warm-hover,#B03A15)}
.duc-auth__err--mt12{margin-top:12px}
.duc-auth__sent{margin:12px 0 0;font-size:12.5px;font-weight:600;color:var(--teal-status,#01A99D)}

/* primary CTA (S:114, primary() S:534) */
.duc-auth__cta{min-height:48px;width:100%;box-sizing:border-box;padding:0 26px;border-radius:999px;background:var(--ink,#12161B);color:var(--white,#FFFFFF);font-size:15px;font-weight:600;letter-spacing:-.2px;border:none;display:inline-flex;align-items:center;justify-content:center;gap:9px;cursor:pointer;font-family:inherit;text-decoration:none;transition:opacity .15s ease}
.duc-auth__cta:hover{background:var(--ink-hover,#28313B)}
.duc-auth__cta:active{transform:translateY(2px)}
.duc-auth__cta[disabled],.duc-auth__cta[aria-busy="true"]{opacity:.45;pointer-events:none;cursor:default}
.duc-auth__cta--mt14{margin-top:14px}
.duc-auth__cta--mt18{margin-top:18px}
.duc-auth__cta--mt24{margin-top:24px}

/* footnotes + text links (S:115,137,172-173) */
.duc-auth__foot{margin:22px 0 0;font-size:13px;line-height:18px;color:var(--body3,#5D6A75)}
.duc-auth__link{background:none;border:none;padding:0;font-size:13px;font-weight:600;line-height:normal;color:var(--blue,#0070A0);cursor:pointer;font-family:inherit;position:relative}   /* line-height normal = the DC's UA button (16px) */
.duc-auth__link::after{content:'';position:absolute;inset:-14px -4px}   /* 44px hit area, no layout change */
.duc-auth__link:hover{text-decoration:underline}
.duc-auth__links{display:flex;justify-content:space-between;gap:12px;margin-top:14px}
.duc-auth__link2{min-height:32px;background:none;border:none;font-size:12.5px;font-weight:600;color:var(--blue,#0070A0);cursor:pointer;padding:0;font-family:inherit;position:relative}
.duc-auth__link2:hover{text-decoration:underline}
.duc-auth__link2::after{content:'';position:absolute;inset:-6px 0}

/* plan radio cards (S:124-135, S:538-539) */
.duc-auth__plans{display:flex;flex-direction:column;gap:8px;margin-top:22px}
.duc-plan{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border-radius:14px;border:1px solid var(--hair,#E5E5EA);background:var(--white,#FFFFFF);cursor:pointer;font-family:inherit;text-align:left;box-sizing:border-box;transition:border-color .15s ease;color:var(--ink,#12161B)}
.duc-plan:hover{background:var(--card-hover,#FCFCFD)}
.duc-plan[aria-checked="true"]{border-color:var(--ink,#12161B);box-shadow:inset 0 0 0 1px var(--ink,#12161B)}
.duc-plan__ring{width:20px;height:20px;border-radius:10px;flex:none;border:1.5px solid #C7C2B6;background:var(--white,#FFFFFF);display:flex;align-items:center;justify-content:center;box-sizing:border-box}
.duc-plan__ring svg{display:none}
.duc-plan[aria-checked="true"] .duc-plan__ring{border:none;background:var(--blue,#0070A0)}
.duc-plan[aria-checked="true"] .duc-plan__ring svg{display:block}
.duc-plan__body{flex:1;min-width:0;text-align:left}
.duc-plan__name-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.duc-plan__name{font-size:15px;font-weight:600;line-height:20px;color:var(--ink,#12161B)}
.duc-plan__chip{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:999px;background:var(--ink,#12161B);color:var(--white,#FFFFFF);font-size:11px;font-weight:600}
.duc-plan__sub{display:block;font-size:13px;line-height:18px;color:var(--muted,#6D6D72);margin-top:2px;text-wrap:pretty}
.duc-plan__price{flex:none;text-align:right;white-space:nowrap}
.duc-plan__amt{font-size:17px;font-weight:700;letter-spacing:-.4px;color:var(--ink,#12161B)}
.duc-plan__per{font-size:12px;color:var(--muted,#6D6D72)}

/* consent tick (S:150-153, consentBoxS S:594) */
.duc-consent{margin-top:16px;display:flex;align-items:flex-start;gap:11px;padding:0 2px}
.duc-consent__box{width:20px;height:20px;border-radius:6px;border:1.5px solid #B9B3A6;background:var(--white,#FFFFFF);flex:none;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;margin-top:1px;transition:background .15s ease;box-sizing:border-box;position:relative}
.duc-consent__box::after{content:'';position:absolute;inset:-13.5px}   /* 20px + 1.5px border → 44px hit area */
.duc-consent__box svg{display:none}
.duc-consent__box[aria-checked="true"]{border-color:var(--ink,#12161B);background:var(--ink,#12161B)}
.duc-consent__box[aria-checked="true"] svg{display:block}
.duc-consent__label{flex:1;font-size:13px;line-height:1.55;color:var(--body2,#3E4A55);cursor:pointer;text-wrap:pretty}
.duc-consent__link{color:var(--ink,#12161B);font-weight:600;text-decoration:underline}
.duc-consent__link:hover{color:var(--ink,#12161B)}

/* code cells (S:163-167, cell S:607) */
/* founder item 4 (2026-09-12): the same sizing as the join section's code row — one line from 320 up, cells
   sized from the space they have, never under 48px tall. */
.duc-cells{display:flex;gap:clamp(6px,2vw,8px);margin-top:22px;flex-wrap:nowrap}
.duc-cells input{flex:1 1 0;width:0;min-width:0;height:clamp(48px,13.5vw,56px);border-radius:10px;border:1.5px solid var(--code-border,#D8D2C6);box-shadow:none;text-align:center;font-size:22px;font-weight:700;color:var(--ink,#12161B);background:var(--white,#FFFFFF);outline:none;font-family:inherit;padding:0;box-sizing:border-box;-moz-appearance:textfield;appearance:textfield}
.duc-cells input:focus{border:2px solid var(--blue,#0070A0);box-shadow:0 0 0 4px var(--focus-ring,rgba(0,112,160,.14))}
.duc-cells input:focus-visible{outline:none}

/* ═ member area (S:196-197) ═ */
.duc-member{position:relative;z-index:1;max-width:var(--container,1280px);margin:0 auto;padding-top:var(--header-h,88px);box-sizing:border-box;animation:duc-fade .3s ease both}
.duc-member__row{display:flex;flex-wrap:wrap;min-height:calc(100vh - var(--header-h,88px));border-left:1px solid var(--hair-hdr,rgba(18,22,27,.10));border-right:1px solid var(--hair-hdr,rgba(18,22,27,.10));box-sizing:border-box}

/* rail (S:200-219) */
.duc-rail{flex:1 1 236px;display:flex;flex-direction:column;gap:6px;padding:22px 14px 22px 26px;box-sizing:border-box;background:var(--paper,#EFEDE6)}
/* FOUNDER OVERRIDE 2026-09-12 — "we don't need one next to the burger menu, nor next to the email". The 36px birds disc
   that led this row (S:202) and its 32px twin in the strip (S:224) are gone: the header brand mark is the only logo on a
   member screen. This reverses that detail of CL-046. The row keeps its flex box (the email needs a flex parent to reach
   its own ellipsis, F9) and the address moves to the rail's own content edge — 10px, the same inset as every tab row. */
.duc-rail__id{display:flex;align-items:center;padding:4px 10px 14px}
.duc-rail__who{flex:1;min-width:0}
.duc-rail__email{font-family:var(--font-mono,'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace);font-size:12px;font-weight:500;color:var(--ink,#12161B);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.duc-rail__role{font-size:11.5px;line-height:15px;color:var(--body3,#5D6A75);margin-top:1px}
.duc-rail__tabs{display:flex;flex-wrap:wrap;gap:2px}
.duc-rail__tab,.duc-rail__off,.duc-rail__signout{display:flex;align-items:center;gap:10px;flex:1 1 170px;min-height:38px;padding:0 10px;border-radius:8px;border:none;background:transparent;font-size:14px;font-weight:500;color:var(--body2,#3E4A55);cursor:pointer;font-family:inherit;text-align:left;transition:background .15s ease;box-sizing:border-box;position:relative}
.duc-rail__tab::after,.duc-rail__signout::after{content:'';position:absolute;inset:-3px 0}
.duc-rail__tab:hover,.duc-rail__signout:hover{background:rgba(18,22,27,.05)}
.duc-rail__tab[aria-selected="true"]{background:var(--rule,rgba(18,22,27,.07));font-weight:600;color:var(--ink,#12161B)}
.duc-rail__tab svg,.duc-rail__off svg:first-child,.duc-rail__signout svg{flex:none}
.duc-rail__label{flex:1}
.duc-rail__count{font-family:var(--font-mono,'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace);font-size:11.5px;font-weight:600;color:var(--body3,#5D6A75)}
.duc-rail__tab[aria-selected="true"] .duc-rail__count{color:var(--body2,#3E4A55)}   /* on the .07 ink row #B3 is 4.1:1 — F1 */
.duc-rail__badge{font-family:var(--font-mono,'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace);font-size:11px;font-weight:600;padding:2px 7px;border-radius:999px;background:var(--teal-tint,#DBEEEB);color:var(--teal,#056A61)}
.duc-rail__badge.is-open{background:var(--warm-tint,#FDEAE2);color:var(--warm-hover,#B03A15)}
.duc-rail__group{margin-top:14px;padding-left:10px;font-size:13px;letter-spacing:-.08px;color:var(--body3,#5D6A75)}
.duc-rail__off{color:var(--placeholder,#8E8E93);cursor:default}
.duc-rail__bottom{margin-top:auto;padding-top:22px;display:flex;flex-direction:column;gap:12px}
.duc-rail__signout{width:100%;flex:none}
.duc-rail__foot{padding-left:10px;font-family:var(--font-mono,'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace);font-size:9.5px;font-weight:600;letter-spacing:1px;color:var(--mono-4,#5D6355)}

/* strip (S:222-232, seg() S:562) */
/* F9: min-width:0 — without it the strip's automatic minimum is its min-content, which a long (nowrap) member email
   holds open past the viewport; the email then never reaches its own ellipsis. With it the strip takes its 100% basis
   and the identity row shrinks as designed. */
.duc-strip{display:none;flex:1 1 100%;min-width:0;flex-direction:column;gap:12px;padding:14px 20px;box-sizing:border-box;background:var(--paper,#EFEDE6);border-bottom:1px solid var(--hair-hdr,rgba(18,22,27,.10))}
.duc-strip__id{display:flex;align-items:center}
.duc-strip__role{font-size:11.5px;line-height:15px;color:var(--body3,#5D6A75)}
.duc-mseg{display:flex;gap:4px;padding:4px;border-radius:999px;border:1px solid rgba(18,22,27,.14);background:rgba(255,255,255,.4)}
.duc-mseg__btn{flex:1;min-width:0;min-height:40px;display:flex;align-items:center;justify-content:center;gap:6px;border-radius:999px;border:none;padding:0 8px;cursor:pointer;font-family:inherit;font-size:14px;font-weight:600;color:var(--body3,#5D6A75);background:transparent;box-shadow:none;transition:background .3s ease,box-shadow .3s ease;position:relative}
.duc-mseg__btn::after{content:'';position:absolute;inset:-4px 0}
.duc-mseg__btn[aria-selected="true"]{font-weight:700;color:var(--ink,#12161B);background:var(--white,#FFFFFF);box-shadow:var(--sh-seg,0 8px 20px rgba(24,44,84,.12))}
@media (max-width:759px){
  .duc-rail{display:none}
  .duc-strip{display:flex}
}

/* main + notion page (S:235-244) */
.duc-mbr-main{flex:999 1 520px;min-width:0;background:var(--white,#FFFFFF);display:flex;flex-direction:column;box-sizing:border-box}
.duc-mbr-main__cover{height:150px;background:url('/assets/site/sky-clouds.jpg') center 35%/cover no-repeat}
@supports (background-image:image-set(url('a.webp') type('image/webp'))){
  .duc-mbr-main__cover{background-image:image-set(url('/assets/site/sky-clouds.webp') type('image/webp'),url('/assets/site/sky-clouds.jpg') type('image/jpeg'))}
}
.duc-mbr-main__col{width:100%;max-width:900px;padding:0 clamp(24px,5vw,56px) 64px;box-sizing:border-box}
.duc-mpage{animation:duc-fade .3s ease both}
.duc-mpage__icon{margin-top:-38px;width:76px;height:76px;border-radius:20px;background:var(--white,#FFFFFF);border:1px solid var(--hair,#E5E5EA);box-shadow:var(--sh-icon,0 6px 18px rgba(18,22,27,.10));display:flex;align-items:center;justify-content:center;position:relative;box-sizing:content-box}   /* S:242 — content-box like the DC div: renders 78px, overlapping the cover by 38 */
.duc-mpage__h1{margin:16px 0 0;font-size:26px;font-weight:700;letter-spacing:-.6px;line-height:32px;color:var(--ink,#12161B)}
.duc-mpage__h1:focus{outline:none}
.duc-mpage__sub{margin:4px 0 0;font-size:14px;line-height:20px;color:var(--muted,#6D6D72);text-wrap:pretty}
.duc-mpage__n{font-family:var(--font-mono,'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace);font-weight:600;color:var(--ink,#12161B)}
.duc-mpage__err{margin:10px 0 0;padding-left:4px;font-size:12.5px;font-weight:600;color:var(--warm,#C8471F)}
.duc-mpage__note{margin-top:14px;padding-left:12px;font-size:12px;line-height:17px;color:var(--muted,#6D6D72);text-wrap:pretty}

/* status pill (pill() S:529) */
.duc-mpill{font-family:var(--font-mono,'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace);font-size:10.5px;font-weight:600;letter-spacing:.8px;padding:4px 9px;border-radius:999px;white-space:nowrap;flex:none}
.duc-mpill--blue{background:var(--blue-tint,#E1EEF5);color:var(--blue,#0070A0)}
.duc-mpill--teal{background:var(--teal-tint,#DBEEEB);color:var(--teal,#056A61)}
.duc-mpill--warm{background:var(--warm-tint,#FDEAE2);color:var(--warm-hover,#B03A15)}

/* Network · waitlist card (S:246-250) */
.duc-wl{margin-top:24px;display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:16px;background:var(--white,#FFFFFF);border:1px solid var(--hair,#E5E5EA);flex-wrap:wrap}
.duc-wl__dot{width:8px;height:8px;border-radius:4px;background:var(--blue,#0070A0);flex:none}
.duc-wl__body{flex:1;min-width:220px}
.duc-wl__t{font-size:15px;font-weight:600;letter-spacing:-.2px;line-height:20px;color:var(--ink,#12161B)}
.duc-wl__s{font-size:13px;line-height:18px;color:var(--muted,#6D6D72);margin-top:2px;text-wrap:pretty}
.duc-wl__date{font-family:var(--font-mono,'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace);font-weight:500;color:var(--ink,#12161B)}
.duc-wl__plan{font-weight:600;color:var(--ink,#12161B)}

/* Network · search (S:252-271) */
.duc-search{margin-top:24px}
.duc-search__field{display:flex;align-items:center;gap:8px;height:44px;padding:0 12px;border-radius:10px;background:var(--field,#F2F2F7);box-sizing:border-box}
.duc-search__field:has(input:focus-visible){box-shadow:0 0 0 2px var(--blue,#0070A0),0 0 0 6px var(--focus-ring,rgba(0,112,160,.14))}
.duc-search__field svg{flex:none}
.duc-search__field input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:16px;color:var(--ink,#12161B);font-family:inherit;padding:0;height:100%;-webkit-appearance:none;appearance:none}
.duc-search__field input::-webkit-search-decoration,.duc-search__field input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}
.duc-search__clear{width:28px;height:28px;border-radius:14px;border:none;background:rgba(18,22,27,.08);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;flex:none;position:relative}
.duc-search__clear::after{content:'';position:absolute;inset:-8px}
.duc-results{margin-top:8px;display:flex;flex-direction:column;gap:1px;border:1px solid var(--hair,#E5E5EA);border-radius:12px;background:var(--field,#F2F2F7);overflow:hidden}
.duc-result{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--white,#FFFFFF)}
.duc-result__disc{width:32px;height:32px;border-radius:16px;background:var(--blue-tint,#E1EEF5);color:var(--blue,#0070A0);font-weight:600;font-size:12px;display:flex;align-items:center;justify-content:center;flex:none}
.duc-result__body{flex:1;min-width:0}
.duc-result__name{font-size:14px;font-weight:600;line-height:18px;color:var(--ink,#12161B)}
.duc-result__detail{font-size:12px;line-height:16px;color:var(--muted,#6D6D72)}
.duc-result__btn{min-height:32px;padding:0 12px;border-radius:8px;border:1px solid var(--hair,#E5E5EA);background:var(--white,#FFFFFF);color:var(--ink,#12161B);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap;flex:none;position:relative}
.duc-result__btn::after{content:'';position:absolute;inset:-7px 0}   /* 32px + 1px border → 44px */
.duc-result__btn:hover{background:var(--card-hover,#FCFCFD)}
.duc-result__btn.is-in,.duc-result__btn.is-in:hover{border-color:transparent;background:transparent;color:var(--placeholder,#8E8E93);cursor:default}
.duc-result__btn[disabled]:not(.is-in){opacity:.45;cursor:default}
.duc-nomatch{padding:10px 12px 0;font-size:13px;line-height:18px;color:var(--muted,#6D6D72)}
.duc-added{display:flex;align-items:center;gap:8px;margin-top:10px;padding:0 4px;font-size:13px;font-weight:600;color:var(--teal,#056A61)}
.duc-added__dot{width:8px;height:8px;border-radius:4px;background:var(--teal-status,#01A99D);flex:none}

/* Network · groups + tiles (S:273-296) */
.duc-group{display:flex;flex-direction:column;gap:8px}
.duc-group--brands{margin-top:26px}
.duc-group--brokers{margin-top:22px}
.duc-group__label{display:flex;align-items:baseline;gap:8px;padding-left:12px;font-size:13px;letter-spacing:-.08px;color:var(--muted,#6D6D72)}
.duc-group__n{font-family:var(--font-mono,'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace);font-size:12px;font-weight:600}
.duc-group__note{padding-left:12px;font-size:12px;line-height:17px;color:var(--muted,#6D6D72);text-wrap:pretty}
.duc-mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(156px,1fr));gap:10px}
.duc-mgrid:empty{display:none}
.duc-tile{display:flex;flex-direction:column;gap:10px;padding:14px 14px 13px;border-radius:14px;border:1px solid var(--hair,#E5E5EA);background:var(--white,#FFFFFF)}
.duc-tile__disc{width:40px;height:40px;border-radius:20px;background:var(--blue-tint,#E1EEF5);color:var(--blue,#0070A0);font-weight:600;font-size:13px;display:flex;align-items:center;justify-content:center}
.duc-tile__disc--broker{background:var(--broker-bg,#ECEDF0);color:var(--broker-fg,#4A5560)}
.duc-tile__name{font-size:13px;font-weight:600;line-height:17px;color:var(--ink,#12161B)}
.duc-tile__detail{font-size:12px;line-height:16px;color:var(--muted,#6D6D72);margin-top:2px}

/* ═ a company's mark inside its disc — D-12 brand logos, FOUNDER OVERRIDE 2026-09-12 ═
   "i also dont see brandfetch logos in my account... these should be cached months ago so want to see them in there."
   The monogram is not deleted, it is demoted to the fallback — what the disc draws while a mark loads, when the row
   carries no logoUrl, when the URL fails, and when no box in the disc can render the mark legibly. Ported from the
   app's one brand-logo rule (branch brand-logos, commit 3249630: duc_brand_mark.dart + network/brand_logo.dart) so the
   two clients cannot drift. Disc geometry, tint and the brokers' grey are untouched — only the contents change.
   member.js sizes the mark: the fit rule derives the box FROM the mark's own aspect ratio, because `cover` crops a
   wordmark ("Quora" → "10") and plain `contain` smears one (Economic Times at 928x102 → a 4px strip). No transition,
   so there is nothing for prefers-reduced-motion to suppress. */
.duc-tile__disc,.duc-result__disc{position:relative;overflow:hidden}
.duc-disc__logo{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:block;max-width:none;object-fit:contain}
.duc-tile__disc.is-logo .duc-disc__mono,.duc-result__disc.is-logo .duc-disc__mono{visibility:hidden}

/* Breaches · scan strip (S:308-317, scanDotS S:650, scanFillS S:651) */
.duc-scan{margin-top:24px;display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 8px 6px 14px;border-radius:12px;background:var(--field,#F2F2F7);flex-wrap:wrap;box-sizing:border-box}
.duc-scan__dot{width:8px;height:8px;border-radius:4px;flex:none;background:var(--teal-status,#01A99D)}
.duc-scan[data-state="idle"][data-open="1"] .duc-scan__dot{background:var(--warm,#C8471F)}
.duc-scan[data-state="scanning"] .duc-scan__dot{background:var(--blue,#0070A0);animation:duc-pulse 1.4s ease-in-out infinite}
.duc-scan[data-state="none"] .duc-scan__dot{background:rgba(18,22,27,.22)}
.duc-scan__text{flex:1;min-width:180px;font-size:13px;line-height:18px;color:var(--muted,#6D6D72)}
.duc-scan__text .duc-scan__date{font-family:var(--font-mono,'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace);font-weight:500;color:var(--ink,#12161B)}
.duc-scan__text .duc-scan__n{font-family:var(--font-mono,'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace);font-weight:600;color:var(--ink,#12161B)}
.duc-scan__bar{width:52px;height:5px;border-radius:3px;background:rgba(18,22,27,.10);overflow:hidden;flex:none;display:block}
.duc-scan__fill{display:block;height:5px;width:100%;border-radius:3px;background:rgba(18,22,27,.22);transition:width .12s linear}
.duc-scan[data-state="none"] .duc-scan__fill{width:0}
.duc-scan[data-state="scanning"] .duc-scan__fill{background:var(--blue,#0070A0)}
.duc-scan[data-state="done"] .duc-scan__fill{background:var(--teal-status,#01A99D)}
.duc-scan__btn{min-height:32px;padding:0 12px;border-radius:8px;border:1px solid var(--hair,#E5E5EA);background:var(--white,#FFFFFF);color:var(--ink,#12161B);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;text-decoration:none;position:relative}
.duc-scan__btn::after{content:'';position:absolute;inset:-7px 0}   /* 32px + 1px border → 44px */
.duc-scan__btn:hover{background:var(--card-hover,#FCFCFD)}
.duc-scan__btn[disabled],.duc-scan__btn[aria-disabled="true"]{opacity:.45;cursor:default}
.duc-scan__btn[disabled]:hover,.duc-scan__btn[aria-disabled="true"]:hover{background:var(--white,#FFFFFF)}

/* Breaches · cards (S:319-334, disc() S:530) */
.duc-breaches{display:flex;flex-direction:column;gap:10px;margin-top:22px}
.duc-breaches:empty{display:none}
.duc-brc{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:16px;background:var(--white,#FFFFFF);border:1px solid var(--hair,#E5E5EA);flex-wrap:wrap}
.duc-brc__disc{width:44px;height:44px;border-radius:22px;background:var(--warm-tint,#FDEAE2);color:var(--warm-hover,#B03A15);font-weight:600;font-size:13px;display:flex;align-items:center;justify-content:center;flex:none}
.duc-brc.is-fixed .duc-brc__disc{background:var(--teal-tint,#DBEEEB);color:var(--teal,#056A61)}
.duc-brc__body{flex:1;min-width:200px}
.duc-brc__row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.duc-brc__name{font-size:15px;font-weight:600;line-height:20px;color:var(--ink,#12161B)}
.duc-brc__detail{font-size:13px;line-height:18px;color:var(--muted,#6D6D72);margin-top:2px}
.duc-brc__actions{display:flex;gap:8px;flex-wrap:wrap}
.duc-brc__change{min-height:36px;padding:0 14px;border-radius:10px;background:var(--warm-tint,#FDEAE2);color:var(--warm-hover,#B03A15);font-size:13.5px;font-weight:600;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;text-decoration:none;position:relative}
.duc-brc__change::after{content:'';position:absolute;inset:-4px 0}
.duc-brc__change:hover{filter:brightness(.97);color:var(--warm-hover,#B03A15)}
.duc-brc__change svg{stroke:currentColor}   /* member.js draws the ↗ with stroke #C8471F; it follows the label colour */
.duc-brc__fix{min-height:36px;padding:0 14px;border-radius:10px;border:1px solid var(--hair,#E5E5EA);background:var(--white,#FFFFFF);color:var(--ink,#12161B);font-size:13.5px;font-weight:500;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;position:relative}
.duc-brc__fix::after{content:'';position:absolute;inset:-5px 0}   /* 36px + 1px border → 44px */
.duc-brc__fix:hover{background:var(--card-hover,#FCFCFD)}
.duc-brc__fix[disabled]{opacity:.45;cursor:default}

/* Account (S:348-410) */
.duc-acct{margin-top:24px;display:flex;flex-direction:column;gap:18px}
.duc-mcard{border-radius:16px;background:var(--white,#FFFFFF);border:1px solid var(--hair,#E5E5EA)}
.duc-mcard--rows{padding:2px 15px}
.duc-mcard--pad{padding:14px 15px 15px}
.duc-mrow{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 0}
.duc-mrow--nowrap{flex-wrap:nowrap}
.duc-mrow + .duc-mrow{border-top:1px solid var(--field,#F2F2F7)}
.duc-mrow__body{flex:1;min-width:180px}
.duc-mrow__body--tight{min-width:0}
.duc-mrow__t{font-size:15px;font-weight:600;letter-spacing:-.2px;line-height:20px;color:var(--ink,#12161B)}
.duc-mrow__t--warm{color:var(--warm,#C8471F)}
.duc-mrow__s{font-size:13px;line-height:18px;color:var(--muted,#6D6D72);margin-top:2px;text-wrap:pretty}
.duc-mrow__right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.duc-mrow__mono{font-family:var(--font-mono,'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace);font-size:13px;font-weight:500;color:var(--ink,#12161B)}
.duc-mrow__date{font-family:var(--font-mono,'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace);font-weight:500;color:var(--ink,#12161B)}
.duc-chips{display:flex;gap:6px;flex-wrap:wrap}
.duc-mchip{display:inline-flex;align-items:center;height:32px;padding:0 14px;border-radius:999px;border:none;font-size:14px;font-weight:500;cursor:pointer;font-family:inherit;transition:background .15s ease;background:var(--field,#F2F2F7);color:var(--chip-fg,#12304A);white-space:nowrap;position:relative}
.duc-mchip::after{content:'';position:absolute;inset:-6px 0}
.duc-mchip:hover{filter:brightness(.96)}
.duc-mchip[aria-checked="true"]{background:var(--ink,#12161B);color:var(--white,#FFFFFF);font-weight:600}
.duc-groupset{display:flex;flex-direction:column;gap:8px}
.duc-groupset .duc-group__label{display:block}
.duc-mswitch{position:relative;width:44px;height:26px;border-radius:13px;border:none;padding:0;background:var(--hair,#E5E5EA);cursor:pointer;flex:none;transition:background .2s ease}
.duc-mswitch::after{content:'';position:absolute;inset:-9px 0}
.duc-mswitch[aria-checked="true"]{background:var(--ink,#12161B)}
.duc-mswitch__knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:10px;background:var(--white,#FFFFFF);box-shadow:var(--sh-knob,0 1px 3px rgba(0,0,0,.2));transition:left .2s ease}
.duc-mswitch[aria-checked="true"] .duc-mswitch__knob{left:21px}
.duc-mswitch[disabled]{opacity:.45;cursor:default}
.duc-legal{display:flex;align-items:center;gap:14px;min-height:48px;box-sizing:content-box;color:var(--ink,#12161B);font-size:15px;font-weight:500;text-decoration:none}   /* content-box like the DC <a>: the bordered 2nd row renders 49px */
.duc-legal + .duc-legal{border-top:1px solid var(--field,#F2F2F7)}
.duc-legal:hover{color:var(--ink,#12161B)}
.duc-legal__t{flex:1}
.duc-del{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.duc-del__body{flex:1;min-width:220px}
.duc-del__btn{min-height:36px;padding:0 14px;border-radius:10px;border:1px solid var(--warm-border,#F3D3C8);background:var(--white,#FFFFFF);color:var(--warm,#C8471F);font-size:13.5px;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap;position:relative}
.duc-del__btn::after{content:'';position:absolute;inset:-5px 0}
.duc-del__btn:hover{background:var(--warm-tint,#FDEAE2);color:var(--warm-hover,#B03A15)}
.duc-del__btns{display:flex;gap:8px;flex-wrap:wrap}
.duc-del__yes{min-height:36px;padding:0 14px;border-radius:10px;border:none;background:var(--warm,#C8471F);color:var(--white,#FFFFFF);font-size:13.5px;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap;position:relative}
.duc-del__yes::after{content:'';position:absolute;inset:-4px 0}
.duc-del__yes:hover{background:var(--warm-hover,#B03A15)}
.duc-del__yes[disabled]{opacity:.45;cursor:default}
.duc-del__keep{min-height:36px;padding:0 14px;border-radius:10px;border:1px solid var(--hair,#E5E5EA);background:var(--white,#FFFFFF);color:var(--ink,#12161B);font-size:13.5px;font-weight:500;cursor:pointer;font-family:inherit;white-space:nowrap;position:relative}
.duc-del__keep::after{content:'';position:absolute;inset:-5px 0}
.duc-del__keep:hover{background:var(--card-hover,#FCFCFD)}
.duc-acct__signout{align-self:center;min-height:44px;padding:0 16px;background:none;border:none;font-size:14px;font-weight:600;color:var(--muted,#6D6D72);cursor:pointer;font-family:inherit}
.duc-acct__signout:hover{color:var(--ink,#12161B)}

/* while siteMe loads: hold the fold so the footer never flashes up under the header */
.duc-member-wait{position:relative;z-index:1;min-height:100vh;box-sizing:border-box}

/* gate (load failure / not a member) */
.duc-gate__actions{margin:18px 0 0;display:flex;gap:8px;flex-wrap:wrap}
.duc-gate__btn{min-height:36px}

/* reduced motion (README L119, A-32) */
@media (prefers-reduced-motion:reduce){
  .duc-auth__step,.duc-member,.duc-mpage{animation:none}
  .duc-scan__dot{animation:none!important}
  .duc-auth *,.duc-member *{transition:none!important}
}
