/* ================================================================
   FPFX — help centre

   The inherited shell opened with a marketing header over a cosmos
   backdrop and kept search inside the page. A support desk should open
   with the search box, so this leads with a persistent search band and
   demotes navigation to a segmented control beneath it.
   ================================================================ */
/* THE GROUND IS NOT PAINTED HERE, AND THE !IMPORTANT THAT USED TO PAINT IT
   WAS THE MOST DAMAGING DECLARATION ON THIS SURFACE.
   ----------------------------------------------------------------
   This rule read `background:var(--bg) !important; background-image:none
   !important`. Measured on help.fpfx.local at 1280x900 before the change,
   with fpfx-aurora.css loaded and winning nothing:

       body background-image .......... none
       body background-attachment ..... scroll
       body background-blend-mode ..... overlay   (blending against nothing)

   Two things died in that, and the second one matters more than it looks:

   1. THE GROUND GRADIENT. .au-host paints a four-stop hue-30 radial from
      --bg-2 down to --au-void. help/_layout.php does not link fpfx.css, so
      unlike the legal routes there is no body::before carrying a second copy
      of that ramp — this surface had NO ground gradient at all. Measured:
      darkest pixel in a viewport was L=0.00191 against 0.00132 everywhere
      else on the platform, and the full ground range was 7.07x where the
      signed-out portal measures 11.59x. The bottom of the ladder was simply
      missing, which is exactly the flatness that reads as cheap.

   2. THE DITHER. The single-octave noise that .au-host blends at `overlay`
      is not decoration; it is the only thing that removes quantisation
      contours from a ramp this shallow, because 8-bit sRGB has too few codes
      between #0A0806 and #261F12 for any stop count to help. Killing
      background-image killed the dither and left the strata banding over a
      flat fill.

   The !important was there to defeat the inherited shell's own body paint.
   Nothing needs defeating now: fpfx-aurora.css is linked after this file on
   every one of the sixteen help routes, so .au-host wins on order alone at
   equal specificity. What replaces it is a fallback that CANNOT fight the
   Aurora ground, because it only matches when the Aurora ground is absent. */
.fpfx-help{
  margin:0;
  color:#F8F8F8;font-family:var(--au-body,"DM Sans",system-ui,-apple-system,sans-serif);
  line-height:1.65;-webkit-font-smoothing:antialiased;
  /* THE CALM INTENSITY. Aurora runs the atmosphere at 1 for marketing, auth
     and empty states and .38 for anything a reader works through rather than
     scans. A support desk is the second case: sixteen routes of dense body
     copy, article tables and search results, opened when something has already
     gone wrong. .38 scales the strata opacity and their drift amplitude off
     the same one variable. Set on the body element in CSS rather than as an
     inline style in help/_layout.php so it travels with the surface's own
     stylesheet and its mirror, and so it beats the inherited :root value
     outright with no dependence on <link> order. */
  --aurora-strength:.38;
}
body:not(.au-host).fpfx-help{background:var(--bg,#0A0806)}
/* THE CHROME GUARD.
   ----------------------------------------------------------------
   .fpfx-help is the BODY class on all sixteen help routes, so the
   shared header, its mobile bottom sheet and the shared .plinth footer
   all render inside it. A bare `.fpfx-help a` (0,1,1) therefore
   outranks every one of those components' own single-class rules
   (0,1,0) and repaints them. :where() contributes 0 specificity, so
   the guard changes which elements match and nothing else.

   Measured on help.fpfx.local/search before the guard: .fh-cta
   computed color:rgb(238,183,98) — exactly the left stop of its own
   `linear-gradient(100deg,#EEB762,#F3DBB2)` background, 1.00:1, a
   "Get funded" button with an invisible label. .fh-login, .fh-help,
   .fh-aff, .fh-site and .fh-logo all measured #EEB762 as well, so the
   whole bar was one flat colour; and all 24 .plinth links were gold
   where the same footer on / measures 26 at rgb(188,181,171), 4 at
   rgb(245,243,240) and 1 at rgb(148,140,130).

   COLOUR ONLY IS GUARDED. `text-decoration:none` stays unguarded and
   applies to every anchor on the surface, because the footer's links
   rely on it and dropping it would underline all 24.

   Same treatment on the heading rule: .plinth-set-h is an <h2> with a
   designed .18em tracking, and an unguarded `.fpfx-help h2` was
   overriding it to -.03em. The font-family below was already split out
   through :where() for exactly this reason — this finishes the job. */
.fpfx-help :is(h1,h2,h3):not(:where(.plinth *,.fh *,.fh-sheet *)){margin:0;letter-spacing:-.03em;line-height:1.12}
/* The display face is set in its own rule, and through :where(), so it
   stays at one class of specificity. The shared footer puts .plinth-set-h
   on an h2 and sets JetBrains Mono there deliberately; folding the family
   into the rule above outranked it and repainted those headings Outfit. */
.fpfx-help :where(h1,h2,h3,h4){font-family:var(--au-disp,"Outfit",system-ui,-apple-system,sans-serif)}
.fpfx-help a{text-decoration:none}
/* GOLD-FILLED BUTTONS MUST BE EXCLUDED HERE, not patched downstream.
   This selector is (0,1,1) -- :where() contributes nothing, and :not()
   inherits its argument's specificity, so it is .fpfx-help + a. A button
   class like .hc-cta is (0,1,0) and LOSES, which painted gold link text on
   a gold gradient: measured 1.00:1, the label was invisible. .hp-btn had
   already been rescued with !important; .hc-cta had not, and nothing said
   why. Naming the buttons in the exclusion fixes the cause instead of
   racing it, and any future gold-filled control belongs in this list. */
.fpfx-help a:not(:where(.plinth *,.fh *,.fh-sheet *,.hc-cta,.hp-btn,.help-btn)){color:#EEB762}
.fpfx-help :focus-visible{outline:2px solid #EEB762;outline-offset:3px;border-radius:6px}
/* THE INHERITED SECOND ATMOSPHERE, KEPT SUPPRESSED ON PURPOSE.
   help/assets/css/help.css still carries a full `.help-cosmos` block: a
   fixed full-viewport layer with a 68px star-dot pattern and three 520px
   blurred blobs on a 15s float. Nothing in this build emits the markup —
   the only three references to the class in the whole tree outside
   _incoming/ are that block, this guard and its mirror — so the guard is
   dormant rather than load-bearing today. It stays because the cost is one
   declaration and what it prevents is a SECOND atmosphere appearing over
   the Aurora strata the moment any inherited partial is restored. One
   surface, one atmosphere. */

/* ---------- utility bar ---------- */
.hp-util{border-bottom:1px solid rgba(238,183,98,.12);background:var(--bg-2,#100C08)}
.hp-util-in{max-width:1180px;margin:0 auto;padding:10px 24px;display:flex;align-items:center;gap:18px}
.hp-brand{display:flex;align-items:center;gap:9px;text-decoration:none;margin-right:auto}
.hp-brand span{font-weight:800;letter-spacing:-.03em;font-size:.9rem;color:#F8F8F8}
.hp-brand em{font-style:normal;
  background:linear-gradient(100deg,#F3DBB2,#EEB762 46%,#8A6B3A);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.hp-back{font-family:var(--au-mono,"JetBrains Mono",ui-monospace,Menlo,monospace);font-size:10px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2,#AEA8A1);transition:color .26s ease}
.hp-back:hover{color:#EEB762}
.hp-who{display:flex;align-items:center;gap:7px;font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);
  font-size:10px;letter-spacing:.1em;color:var(--muted,#C4BCB1);max-width:220px;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.hp-who i{flex:none;width:6px;height:6px;border-radius:50%;background:#22C55E}

/* ---------- search band ---------- */
.hp-searchband{position:relative;overflow:hidden;border-bottom:1px solid rgba(238,183,98,.12);
  background:
    radial-gradient(760px 320px at 50% -40%,rgba(238,183,98,.15),transparent 70%),
    linear-gradient(180deg,#0D0B08,#0A0806)}
.hp-searchband-in{max-width:800px;margin:0 auto;padding:56px 24px 44px;text-align:center;position:relative;z-index:2}
.hp-ask{margin:0;font-size:clamp(1.7rem,3.6vw,2.4rem);font-weight:800;color:#F8F8F8}
.hp-search{display:flex;align-items:center;gap:10px;margin:24px 0 0;padding:6px 6px 6px 16px;
  border-radius:14px;background:var(--surface,#171109);border:1px solid rgba(238,183,98,.28);
  transition:border-color .3s ease,box-shadow .3s ease}
.hp-search:focus-within{border-color:#EEB762;box-shadow:0 0 0 4px rgba(238,183,98,.1)}
.hp-search svg{flex:none;color:var(--gold-meta,#CAA265)}
.hp-search input{flex:1;min-width:0;border:0;background:transparent;color:#F8F8F8;
  font-family:inherit;font-size:.98rem;padding:12px 0}
.hp-search input:focus{outline:none}
.hp-search input::placeholder{color:var(--muted-2,#AEA8A1)}
.hp-search button{flex:none;cursor:pointer;border:0;border-radius:10px;padding:12px 22px;
  font-family:inherit;font-size:.88rem;font-weight:700;color:#120E06;
  background:linear-gradient(100deg,#EEB762,#F3DBB2);
  transition:transform .22s cubic-bezier(.16,1,.3,1),box-shadow .3s ease}
.hp-search button:hover{transform:translateY(-1px);box-shadow:0 12px 28px -12px rgba(238,183,98,.75)}
.hp-hint{margin:14px 0 0;font-size:.8rem;color:var(--muted-2,#AEA8A1)}
.hp-hint a{color:var(--muted,#C4BCB1);border-bottom:1px solid rgba(238,183,98,.24)}
.hp-hint a:hover{color:#EEB762}

/* ---------- segmented nav ---------- */
/* THIS BAR DOES NOT ACTUALLY STICK, AND top MUST STAY 0. Measured, not
   assumed: fpfx-aurora.css:94 is
     .au-host > *:not(.au-aurora):not(.au-scrim){position:relative;z-index:1}
   which is three classes to this rule's one, so on any page whose <body>
   carries au-host — every help-centre page — it wins on specificity
   regardless of load order and computes `position:relative` here. The shared
   banner above loses the same argument (fpfx-header.css:28 is also a single
   class), so nothing above this bar is pinned either.
   The consequence for anyone tempted to give this an offset: on a RELATIVE
   box `top` is not a sticky threshold, it is a 66px shove down the page. If
   the Aurora rule is ever narrowed so these two do stick, set the offset in
   the SAME change — .fh-in is 66px at rest and 58px once .fh.stuck lands. */
.hp-seg{position:sticky;top:0;z-index:40;border-bottom:1px solid rgba(238,183,98,.12);
  background:rgba(5,5,5,.92);backdrop-filter:blur(14px)}
.hp-seg-in{max-width:1180px;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:2px;
  overflow-x:auto;scrollbar-width:none}
.hp-seg-in::-webkit-scrollbar{display:none}
.hp-seg-in a{position:relative;padding:15px 14px;font-size:.87rem;color:var(--muted,#C4BCB1);white-space:nowrap;
  transition:color .26s ease}
.hp-seg-in a::after{content:"";position:absolute;left:14px;right:14px;bottom:0;height:2px;
  background:linear-gradient(90deg,#EEB762,#F3DBB2);transform:scaleX(0);transform-origin:left;
  transition:transform .32s cubic-bezier(.16,1,.3,1)}
.hp-seg-in a:hover{color:#F8F8F8}
.hp-seg-in a.on{color:#EEB762}
.hp-seg-in a.on::after,.hp-seg-in a:hover::after{transform:scaleX(1)}
.hp-seg-cta{margin-left:auto;padding:8px 16px !important;border-radius:9px;font-weight:600;
  color:#EEB762 !important;border:1px solid rgba(238,183,98,.32)}
.hp-seg-cta::after{display:none !important}
.hp-seg-cta:hover{background:var(--surface-2,#211810)}
/* The signed-in chip, which used to sit in the utility bar the shared banner
   replaced. It keeps every .hp-who rule above; all it needs here is not to be
   squeezed by the flex row it has moved into. */
.hp-seg-in .hp-who{flex:none;margin-left:14px}

/* ---------- breadcrumbs ---------- */
.hp-crumbs-wrap{border-bottom:1px solid rgba(238,183,98,.08)}
.hp-crumbs{max-width:1180px;margin:0 auto;padding:12px 24px;display:flex;flex-wrap:wrap;gap:8px;
  font-size:.79rem;color:var(--muted-2,#AEA8A1)}
.hp-crumbs a{color:var(--muted,#C4BCB1)}
.hp-crumbs a:hover{color:#EEB762}
.hp-crumbs .on{color:#F8F8F8}

/* ---------- main ---------- */
.hp-main{max-width:1180px;margin:0 auto;padding:44px 24px 72px}
.hp-main.wide{max-width:1320px}

/* the knowledge-base content keeps its own classes; these give it the
   FPFX surface treatment without renaming anything */
.hp-main .help-card,.hp-main .kb-card,.hp-main .article-card,.hp-main .ticket-row,
.hp-main .category-card{background:var(--surface,#171109) !important;border:1px solid rgba(238,183,98,.15) !important;
  border-radius:14px !important;transition:transform .3s cubic-bezier(.16,1,.3,1),border-color .3s ease}
.hp-main .help-card:hover,.hp-main .kb-card:hover,.hp-main .article-card:hover,
.hp-main .category-card:hover{transform:translateY(-4px);border-color:rgba(238,183,98,.42) !important}
.hp-main h1,.hp-main h2{color:#F8F8F8}
.hp-main p,.hp-main li{color:#a9a49b}

/* ---------- still stuck ---------- */
.hp-ask-more{border-top:1px solid rgba(238,183,98,.12);background:var(--bg-2,#100C08)}
.hp-ask-in{max-width:1180px;margin:0 auto;padding:38px 24px;display:flex;align-items:center;
  justify-content:space-between;gap:24px;flex-wrap:wrap}
.hp-ask-in h2{font-size:1.2rem;font-weight:700;color:#F8F8F8}
.hp-ask-in p{margin:6px 0 0;color:var(--muted,#C4BCB1);font-size:.9rem;max-width:56ch}
.hp-btn{display:inline-flex;align-items:center;gap:9px;padding:13px 24px;border-radius:10px;
  font-size:.9rem;font-weight:700;color:#120E06 !important;
  background:linear-gradient(100deg,#EEB762,#F3DBB2);
  box-shadow:0 12px 30px -14px rgba(238,183,98,.7);
  transition:transform .22s cubic-bezier(.16,1,.3,1),box-shadow .3s ease}
.hp-btn:hover{transform:translateY(-2px);box-shadow:0 20px 42px -16px rgba(238,183,98,.85)}

/* ---------- footer ---------- */
.hp-foot{border-top:1px solid rgba(238,183,98,.12);background:var(--bg,#0A0806)}
.hp-foot-in{max-width:1180px;margin:0 auto;padding:46px 24px 30px}
.hp-foot-cols{display:grid;grid-template-columns:1.7fr repeat(3,1fr);gap:32px}
@media(max-width:820px){.hp-foot-cols{grid-template-columns:1fr 1fr}}
.hp-foot-cols p{margin:12px 0 0;color:var(--muted,#C4BCB1);font-size:.84rem;max-width:38ch}
.hp-foot-cols h5{margin:0 0 13px;font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:9.5px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2,#AEA8A1)}
.hp-foot-cols > div > a{display:block;margin-bottom:9px;color:var(--muted,#C4BCB1);font-size:.86rem;
  transition:color .26s ease}
.hp-foot-cols > div > a:hover{color:#EEB762}
.hp-foot-legal{margin-top:36px;padding-top:20px;border-top:1px solid rgba(238,183,98,.1)}
.hp-foot-legal p{margin:0;color:var(--muted-2,#AEA8A1);font-size:.76rem;line-height:1.7;max-width:96ch}
.hp-foot-legal span{display:block;margin-top:14px;font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);
  font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2,#AEA8A1)}

/* The blanket reduced-motion rule EXEMPTS THE AURORA LAYER — same reasoning as
   the matching rule in fpfx-auth.css. `.fpfx-help *` reaches .au-aurora, so
   this was putting animation-duration:.001ms !important on the five strata
   bands inside a subtree fpfx-aurora.css owns and has its own reduced-motion
   block for. Measured, it produced the right answer anyway (bands compute
   animation-name:none and the identity transform, which is the exact mid-frame
   of keyframes symmetric about zero), but only because a rule in another file
   won animation-name at a lower weight than this rule's !important longhands.
   :where() is zero-specificity, so the rule's weight is unchanged. */
@media (prefers-reduced-motion:reduce){
  .fpfx-help *:not(:where(.au-aurora,.au-aurora *)),
  .fpfx-help *:not(:where(.au-aurora,.au-aurora *))::before,
  .fpfx-help *:not(:where(.au-aurora,.au-aurora *))::after{
    animation-duration:.001ms !important;transition-duration:.001ms !important}
}

/* ================================================================
   Knowledge base: results, categories, tickets
   Search and browse share one row component, so moving between them
   feels continuous rather than like two different products.
   ================================================================ */
.kb-top{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;
  flex-wrap:wrap;margin-bottom:24px}
.kb-top h1{font-size:clamp(1.5rem,3vw,2rem);font-weight:800;color:#F8F8F8}
.kb-top p{margin:7px 0 0;color:var(--muted,#C4BCB1);font-size:.9rem}
.kb-top mark,.kb-title mark,.kb-ex mark{background:rgba(238,183,98,.22);color:#F3DBB2;
  padding:0 2px;border-radius:3px}
.kb-newticket{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:10px;
  font-size:.86rem;font-weight:600;color:#EEB762;border:1px solid rgba(238,183,98,.32);
  transition:all .28s cubic-bezier(.16,1,.3,1)}
.kb-newticket:hover{background:var(--surface-2,#211810);border-color:#EEB762;transform:translateY(-2px)}

/* facets */
.kb-facets{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:26px;padding-bottom:22px;
  border-bottom:1px solid rgba(238,183,98,.1)}
.kb-facets a{display:inline-flex;align-items:center;gap:8px;padding:8px 13px;border-radius:20px;
  font-size:.81rem;color:var(--muted,#C4BCB1);background:var(--surface,#171109);border:1px solid rgba(238,183,98,.13);
  transition:all .26s ease}
.kb-facets a span{font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:9.5px;color:var(--muted-2,#AEA8A1)}
.kb-facets a:hover{color:#F8F8F8;border-color:rgba(238,183,98,.32)}
.kb-facets a.on{color:#120E06;background:linear-gradient(100deg,#EEB762,#F3DBB2);border-color:transparent}
.kb-facets a.on span{color:rgba(18,14,6,.62)}

/* result rows, shared by search and category */
.kb-results{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.kb-results a{display:grid;grid-template-columns:38px 1fr 22px;gap:16px;align-items:start;
  padding:17px 14px;border-radius:12px;border:1px solid transparent;
  transition:background .26s ease,border-color .26s ease,transform .26s cubic-bezier(.16,1,.3,1)}
.kb-results a:hover{background:var(--surface,#171109);border-color:rgba(238,183,98,.2);transform:translateX(3px)}
.kb-n{font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:10px;color:var(--muted-2,#AEA8A1);padding-top:4px}
.kb-results a:hover .kb-n{color:#EEB762}
.kb-cat{display:inline-block;margin-bottom:5px;font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);
  font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:#C09553}
.kb-title{display:block;font-size:1rem;font-weight:600;color:#F8F8F8;line-height:1.35}
.kb-ex{display:block;margin-top:5px;font-size:.85rem;color:var(--muted,#C4BCB1);line-height:1.6;max-width:78ch}
.kb-meta{display:block;margin-top:7px;font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);
  font-size:9px;letter-spacing:.08em;color:var(--muted-2,#AEA8A1)}
.kb-go{color:var(--muted-2,#AEA8A1);padding-top:3px;transition:transform .26s ease,color .26s ease}
.kb-results a:hover .kb-go{color:#EEB762;transform:translateX(3px)}

/* empty state */
.kb-empty{padding:52px 28px;text-align:center;border-radius:15px;background:var(--surface,#171109);
  border:1px dashed rgba(238,183,98,.24)}
.kb-empty b{display:block;font-size:1.06rem;color:#F8F8F8}
.kb-empty p{margin:9px auto 22px;max-width:48ch;color:var(--muted,#C4BCB1);font-size:.88rem}

/* category header */
.kb-cathead{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:28px;
  padding:24px;border-radius:16px;background:var(--surface,#171109);
  border:1px solid rgba(238,183,98,.15);border-left:3px solid var(--cat,#EEB762)}
.kb-catmark{flex:none;display:grid;place-items:center;width:52px;height:52px;border-radius:14px;
  font-size:1.4rem;color:var(--cat,#EEB762);background:rgba(238,183,98,.1);
  border:1px solid rgba(238,183,98,.24)}
.kb-catk{font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:9px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted-2,#AEA8A1)}
.kb-cathead h1{margin:5px 0 0;font-size:1.5rem;font-weight:800;color:#F8F8F8}
.kb-cathead p{margin:7px 0 0;color:var(--muted,#C4BCB1);font-size:.89rem;max-width:62ch}
.kb-catcount{margin-left:auto;text-align:right;font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);
  font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted-2,#AEA8A1)}
.kb-catcount b{display:block;font-family:var(--au-body,"DM Sans",system-ui,sans-serif);font-size:1.7rem;font-weight:800;
  color:#EEB762;letter-spacing:-.03em}
.kb-back{margin-top:32px;padding-top:20px;border-top:1px solid rgba(238,183,98,.1)}
.kb-back a{font-size:.85rem;color:var(--muted,#C4BCB1)}
.kb-back a:hover{color:#EEB762}

/* ---------- tickets ---------- */
.tk-alert{color:#EEB762}
.tk-filter{display:flex;align-items:center;gap:10px;margin-bottom:26px}
.tk-filter label{font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:9px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2,#AEA8A1)}
.tk-filter .select{padding:9px 14px;border-radius:9px;font-family:inherit;font-size:.85rem;
  background:#0D0B08;color:#F8F8F8;border:1px solid rgba(238,183,98,.15);cursor:pointer}
.tk-filter .select:focus{outline:none;border-color:#EEB762}

.tk-group{margin-bottom:30px}
.tk-group h2{display:flex;align-items:center;gap:10px;margin:0 0 12px;font-size:.82rem;
  font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted,#C4BCB1)}
.tk-group h2 span{padding:2px 8px;border-radius:20px;font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);
  font-size:9.5px;background:var(--surface-2,#211810);border:1px solid rgba(238,183,98,.15);color:var(--muted-2,#AEA8A1)}
.tk-group.g-you h2{color:#EEB762}
.tk-group.g-you h2 span{color:#120E06;background:linear-gradient(100deg,#EEB762,#F3DBB2);border-color:transparent}
.tk-list{display:flex;flex-direction:column;gap:2px}
.tk-row{display:grid;grid-template-columns:104px 1fr 90px 130px 20px;gap:16px;align-items:center;
  padding:15px 14px;border-radius:12px;border:1px solid transparent;
  transition:background .26s ease,border-color .26s ease,transform .26s cubic-bezier(.16,1,.3,1)}
.tk-row:hover{background:var(--surface,#171109);border-color:rgba(238,183,98,.2);transform:translateX(3px)}
@media(max-width:860px){.tk-row{grid-template-columns:1fr auto;gap:10px}
  .tk-prog,.tk-go{display:none}}
.tk-id{font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:10.5px;color:#C09553}
.tk-main b{display:block;font-size:.94rem;font-weight:600;color:#F8F8F8}
.tk-main span{display:block;margin-top:3px;font-size:.78rem;color:var(--muted-2,#AEA8A1)}
.tk-prog{height:4px;border-radius:3px;background:rgba(238,183,98,.12);overflow:hidden}
.tk-prog i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,#8A6B3A,#F3DBB2)}
.tk-status{justify-self:start;padding:5px 11px;border-radius:20px;font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);
  font-size:9px;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;
  background:var(--surface-2,#211810);border:1px solid rgba(238,183,98,.15);color:var(--muted,#C4BCB1)}
.tk-status.s-pending_customer{color:#EEB762;border-color:rgba(238,183,98,.42);background:rgba(238,183,98,.1)}
.tk-status.s-resolved,.tk-status.s-closed{color:#22C55E;border-color:rgba(34,197,94,.3);background:rgba(34,197,94,.08)}
.tk-status.s-new,.tk-status.s-open,.tk-status.s-reopened{color:#EEB762;border-color:rgba(238,183,98,.3);background:rgba(238,183,98,.08)}
.tk-go{color:var(--muted-2,#AEA8A1);transition:transform .26s ease,color .26s ease}
.tk-row:hover .tk-go{color:#EEB762;transform:translateX(3px)}

/* ================================================================
   Article view
   The article keeps the column to itself; the right rail is a contents
   list built from its own headings, so it helps you read rather than
   navigate away. Related links move to the foot.
   ================================================================ */
.ar-head{padding-bottom:26px;margin-bottom:30px;border-bottom:1px solid rgba(238,183,98,.12)}
.ar-cat{display:inline-block;margin-bottom:14px;padding:5px 12px;border-radius:20px;
  font-family:var(--au-mono,"JetBrains Mono",ui-monospace,Menlo,monospace);font-size:9px;letter-spacing:.14em;
  text-transform:uppercase;color:#EEB762;border:1px solid rgba(238,183,98,.28);
  transition:background .26s ease}
.ar-cat:hover{background:rgba(238,183,98,.09)}
.ar-head h1{font-size:clamp(1.7rem,3.6vw,2.5rem);font-weight:800;color:#F8F8F8;
  letter-spacing:-.035em;line-height:1.1;text-wrap:balance}
.ar-facts{display:flex;flex-wrap:wrap;gap:0;margin:24px 0 0;padding:0;border-radius:12px;
  overflow:hidden;background:var(--surface,#171109);border:1px solid rgba(238,183,98,.13)}
.ar-facts > div{flex:1 1 auto;min-width:130px;padding:13px 16px;border-right:1px solid rgba(238,183,98,.09)}
.ar-facts > div:last-child{border-right:0}
.ar-facts dt{margin:0 0 4px;font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:8.5px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2,#AEA8A1)}
.ar-facts dd{margin:0;font-size:.88rem;font-weight:600;color:#F8F8F8}

.ar-note{padding:13px 16px;border-radius:11px;margin-bottom:20px;font-size:.87rem}
.ar-note.ok{background:rgba(34,197,94,.09);border:1px solid rgba(34,197,94,.3);color:#9ff0bd}
.ar-note.err{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.32);color:#ffb4b4}

.ar-shell{display:grid;grid-template-columns:minmax(0,1fr) 232px;gap:48px;align-items:start}
@media(max-width:1000px){.ar-shell{grid-template-columns:1fr;gap:0}}
.ar-body{color:#a9a49b;font-size:.96rem;line-height:1.82}
.ar-body > *:first-child{margin-top:0}
.ar-body p{margin:0 0 15px;max-width:76ch}
.ar-body h2,.ar-body h3{color:#F8F8F8;letter-spacing:-.02em;scroll-margin-top:84px}
.ar-body h2{margin:34px 0 13px;font-size:1.28rem;padding-top:20px;border-top:1px solid rgba(238,183,98,.1)}
.ar-body h3{margin:26px 0 11px;font-size:1.06rem}
.ar-body ul,.ar-body ol{margin:0 0 15px;padding-left:22px}
.ar-body li{margin-bottom:8px;max-width:74ch}
.ar-body strong,.ar-body b{color:#F8F8F8;font-weight:600}
.ar-body a{color:#EEB762;border-bottom:1px solid rgba(238,183,98,.3)}
.ar-body a:hover{color:#F3DBB2;border-bottom-color:#F3DBB2}
.ar-body img{max-width:100%;height:auto;border-radius:12px;border:1px solid rgba(238,183,98,.15);margin:8px 0 18px}
.ar-body code{padding:2px 6px;border-radius:5px;background:var(--surface-2,#211810);border:1px solid rgba(238,183,98,.15);
  font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:.86em;color:#F3DBB2}
.ar-body pre{padding:16px 18px;border-radius:12px;background:#0D0B08;overflow-x:auto;
  border:1px solid rgba(238,183,98,.15);margin:0 0 18px}
.ar-body pre code{background:none;border:0;padding:0}
.ar-body blockquote{margin:0 0 18px;padding:14px 18px;border-left:2px solid #EEB762;
  background:var(--surface,#171109);border-radius:0 10px 10px 0;color:#c9c4bb}
.ar-body table{width:100%;border-collapse:collapse;margin:0 0 18px;font-size:.88rem;display:block;overflow-x:auto}
.ar-body th,.ar-body td{padding:10px 14px;text-align:left;border-bottom:1px solid rgba(238,183,98,.1)}
.ar-body th{color:var(--muted,#C4BCB1);font-weight:600}

.ar-rail{position:sticky;top:84px;align-self:start;max-height:calc(100vh - 112px);overflow-y:auto;
  padding-left:20px;border-left:1px solid rgba(238,183,98,.1)}
@media(max-width:1000px){.ar-rail{position:static;max-height:none;border-left:0;padding-left:0;
  margin-bottom:28px;padding-bottom:22px;border-bottom:1px solid rgba(238,183,98,.12)}}
.ar-rail p{margin:0 0 12px;font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:9px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2,#AEA8A1)}
.ar-rail ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}
.ar-rail li.lvl3 a{padding-left:22px;font-size:.76rem}
.ar-rail a{display:block;padding:7px 10px;border-radius:7px;font-size:.79rem;line-height:1.4;
  color:var(--muted,#C4BCB1);border-left:2px solid transparent;transition:all .24s cubic-bezier(.22,.61,.36,1)}
.ar-rail a:hover{background:var(--surface,#171109);color:#F8F8F8;border-left-color:#8A6B3A}
.ar-rail a.on{background:var(--surface-2,#211810);color:#EEB762;border-left-color:#EEB762}

.ar-vote{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
  margin-top:44px;padding:24px;border-radius:15px;background:var(--surface,#171109);
  border:1px solid rgba(238,183,98,.15)}
.ar-vote h3{font-size:1.02rem;font-weight:700;color:#F8F8F8}
.ar-vote p{margin:6px 0 0;font-size:.83rem;color:var(--muted-2,#AEA8A1)}
.ar-vote-btns{display:flex;gap:9px}
.ar-vote-btns button{cursor:pointer;padding:11px 20px;border-radius:10px;font-family:inherit;
  font-size:.86rem;font-weight:600;background:transparent;
  border:1px solid rgba(238,183,98,.24);color:var(--muted,#C4BCB1);transition:all .26s cubic-bezier(.16,1,.3,1)}
.ar-vote-btns .yes:hover{color:#22C55E;border-color:rgba(34,197,94,.45);background:rgba(34,197,94,.08);transform:translateY(-2px)}
.ar-vote-btns .no:hover{color:#ffb4b4;border-color:rgba(239,68,68,.4);background:rgba(239,68,68,.07);transform:translateY(-2px)}

.ar-next{display:grid;grid-template-columns:1fr 1fr;gap:34px;margin-top:40px;padding-top:32px;
  border-top:1px solid rgba(238,183,98,.12)}
@media(max-width:820px){.ar-next{grid-template-columns:1fr;gap:28px}}
.ar-next h3{margin:0 0 14px;font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:9.5px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2,#AEA8A1)}
.ar-next-list{display:flex;flex-direction:column;gap:2px}
.ar-next-list a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:9px;
  font-size:.87rem;color:var(--muted,#C4BCB1);transition:all .26s ease}
.ar-next-list a i{margin-left:auto;font-style:normal;color:var(--muted-2,#AEA8A1);transition:transform .26s ease}
.ar-next-list a:hover{background:var(--surface,#171109);color:#F8F8F8}
.ar-next-list a:hover i{color:#EEB762;transform:translateX(3px)}
.ar-cats{display:flex;flex-wrap:wrap;gap:7px}
.ar-cats a{display:inline-flex;align-items:center;gap:8px;padding:8px 13px;border-radius:20px;
  font-size:.8rem;color:var(--muted,#C4BCB1);background:var(--surface,#171109);border:1px solid rgba(238,183,98,.13);
  transition:all .26s ease}
.ar-cats a b{font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:9px;color:var(--muted-2,#AEA8A1)}
.ar-cats a:hover{color:#EEB762;border-color:rgba(238,183,98,.32)}

.ar-share{display:flex;align-items:center;gap:10px;margin-top:34px;padding-top:22px;
  border-top:1px solid rgba(238,183,98,.1)}
.ar-share span{font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:9px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted-2,#AEA8A1);margin-right:4px}
.ar-share a{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;
  font-size:.76rem;font-weight:700;color:var(--muted,#C4BCB1);background:var(--surface,#171109);
  border:1px solid rgba(238,183,98,.15);transition:all .26s cubic-bezier(.16,1,.3,1)}
.ar-share a:hover{color:#120E06;border-color:transparent;transform:translateY(-3px);
  background:linear-gradient(140deg,#EEB762,#F3DBB2)}

/* ================================================================
   Ticket form — three numbered stages, one submit
   ================================================================ */
.tf-who{display:flex;align-items:center;gap:8px;padding:9px 14px;border-radius:20px;font-size:.82rem;
  color:var(--muted,#C4BCB1);background:var(--surface,#171109);border:1px solid rgba(238,183,98,.15)}
.tf-who i{width:6px;height:6px;border-radius:50%;background:#22C55E}
.tf-who b{color:#F8F8F8}
.tf{max-width:840px}
.tf-stage{margin-bottom:14px;padding:24px;border-radius:15px;background:var(--surface,#171109);
  border:1px solid rgba(238,183,98,.15)}
.tf-stage-h{display:flex;gap:14px;align-items:flex-start;margin-bottom:20px;padding-bottom:16px;
  border-bottom:1px solid rgba(238,183,98,.1)}
.tf-stage-h > span{flex:none;padding:5px 10px;border-radius:8px;
  font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:11px;color:#EEB762;
  border:1px solid rgba(238,183,98,.32)}
.tf-stage-h b{display:block;font-size:.98rem;color:#F8F8F8}
.tf-stage-h small{color:var(--muted-2,#AEA8A1);font-size:.8rem}
.tf-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:640px){.tf-grid{grid-template-columns:1fr}}
.tf-f{display:block}
.tf-f.wide{grid-column:1/-1}
/* The field label. `span` was the only shape this rule had to cover until the
   country/phone pair arrived; both of those need a real <label for>, and the
   phone block additionally carries a <span class="fpfx-phone-error"> that must
   NOT be painted as a label. :not() lifts specificity to (0,4,0), which no
   other rule in this file competes with. */
.tf-f > span:not(.fpfx-phone-error),
.tf-f > .tf-lbl{display:block;margin-bottom:7px;font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);
  font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2,#AEA8A1)}
.tf .input,.tf .select,.tf .textarea,.tf input[type=text],.tf input[type=email],.tf textarea,.tf select{
  width:100%;padding:12px 14px;border-radius:10px;font-family:inherit;font-size:.92rem;
  background:#0D0B08;color:#F8F8F8;border:1px solid rgba(238,183,98,.15);
  transition:border-color .28s ease,background .28s ease}
.tf .input:focus,.tf .select:focus,.tf .textarea:focus,.tf textarea:focus,.tf select:focus{
  outline:none;border-color:rgba(238,183,98,.5);background:var(--surface,#171109)}
.tf .textarea,.tf textarea{resize:vertical;line-height:1.7}
.tf .select,.tf select{cursor:pointer}
.tf-hint{display:block;margin-top:7px;font-style:normal;font-size:.76rem;color:var(--muted-2,#AEA8A1)}
.tf-warn{color:#ffb4b4}

/* ================================================================
   COUNTRY + PHONE (help/create-ticket.php)
   ----------------------------------------------------------------
   The two-character `country_code` text box is now a 249-entry native
   select with a flag beside it, and the free-text phone field is the
   platform's intl-tel-input integration.

   THE FLAG IS NOT AN EMOJI. Windows Chrome and Edge carry no colour
   flag glyphs, so a regional-indicator pair renders as the bare ISO
   letters — "AE" beside an option that already reads "United Arab
   Emirates". This paints the vendor's own sprite instead: .iti__flag
   sets the background-image and sizing, .iti__xx sets the per-country
   --iti-flag-offset, and both come from the intl-tel-input stylesheet
   this route already loads for the phone widget. Nothing new is
   downloaded for it.

   Widget skin, error colour and the <=430px narrowing live in
   help/assets/css/fpfx-phone.css; only the ticket form's own layout is
   here, because only this file knows the form. */
.tf-country{position:relative;display:block}
.tf-country .input{padding-left:46px}
.tf-flag{position:absolute;left:14px;top:50%;transform:translateY(-50%);
  pointer-events:none;margin-right:0;box-shadow:0 0 0 1px rgba(0,0,0,.45)}
/* No country chosen yet: a hairline placeholder box, so the control does not
   jump horizontally the moment the first flag paints. */
.tf-flag-none{background-image:none;background-color:rgba(238,183,98,.10);
  box-shadow:inset 0 0 0 1px rgba(238,183,98,.28)}
/* The select's own chevron would sit under the native one at some zooms; the
   help form's inputs have no custom chevron, so nothing to suppress — this
   only guarantees room for the longest country name at 360px. */
.tf-country select.input{text-overflow:ellipsis}

/* intl-tel-input renders the country button INSIDE the input's box, so the
   input needs a left gutter — that is set in fpfx-phone.css, which knows the
   button's width. What belongs here is the wrapper: .tf-f is display:block
   and the widget replaces the input with its own .iti wrapper, so the field
   would otherwise lose its full width. */
.tf .fpfx-phone .iti{display:block;width:100%}
.tf .fpfx-phone .tf-hint{margin-top:7px}

/* prefers-reduced-motion: the vendor's strictMode rejects an out-of-range
   keystroke with a background flash. Colour is not the only signal — the
   .fpfx-phone-error text and setCustomValidity() both still fire — so the
   flash can be dropped outright for anyone who asked for less motion. */
@media (prefers-reduced-motion:reduce){
  .tf .fpfx-phone .iti input{transition:none}
  .tf .fpfx-phone .iti--strict-reject-flash input{animation:none!important}
}
.tf-drop{display:block;padding:26px;border-radius:12px;text-align:center;cursor:pointer;
  background:#0D0B08;border:1px dashed rgba(238,183,98,.3);transition:all .28s ease}
.tf-drop:hover{border-color:#EEB762;background:var(--surface,#171109)}
.tf-drop input[type=file]{position:absolute;left:-9999px}
.tf-drop b{display:block;font-size:.9rem;color:#F8F8F8}
.tf-drop span{display:block;margin-top:6px;font-size:.78rem;color:var(--muted-2,#AEA8A1);line-height:1.6}
.tf-custom:empty{display:none}
.tf-submit{display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap;
  margin-top:20px;padding:20px 24px;border-radius:15px;background:var(--surface-2,#211810);
  border:1px solid rgba(238,183,98,.2)}
.tf-submit p{margin:0;font-size:.8rem;color:var(--muted,#C4BCB1);max-width:56ch}
.tf-signin{margin-top:20px;padding:15px 18px;border-radius:11px;font-size:.85rem;color:var(--muted,#C4BCB1);
  background:var(--surface,#171109);border:1px dashed rgba(238,183,98,.24)}

/* ================================================================
   Ticket conversation view

   Inherited: command header, then a separate overview grid, then an SLA
   card — three stacked blocks — beside a two-column layout with a sticky
   right sidebar.

   Here: one status bar carrying state, facts and actions, then a single
   full-width conversation, with the detail panels and history reflowed
   below it. The sidebar is moved by CSS order rather than by relocating
   its PHP, so the consent, draft and attachment logic is untouched.
   ================================================================ */
.tv-head{padding:22px 24px;margin-bottom:20px;border-radius:16px;background:var(--surface,#171109);
  border:1px solid rgba(238,183,98,.15)}
.tv-head-top{display:flex;align-items:center;justify-content:space-between;gap:18px;
  flex-wrap:wrap;margin-bottom:14px}
.tv-id{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.tv-chip{padding:5px 11px;border-radius:7px;font-family:var(--au-mono,"JetBrains Mono",ui-monospace,Menlo,monospace);
  font-size:10.5px;letter-spacing:.08em;color:#EEB762;background:#0D0B08;
  border:1px solid rgba(238,183,98,.28)}
.tv-head h1{margin:0 0 18px;font-size:clamp(1.2rem,2.4vw,1.6rem);font-weight:700;
  letter-spacing:-.025em;line-height:1.25;color:#F8F8F8;text-wrap:balance}

.tv-tools{display:flex;gap:7px;flex-wrap:wrap}
.tv-tool{cursor:pointer;padding:8px 14px;border-radius:9px;font-family:inherit;font-size:.8rem;
  font-weight:600;color:var(--muted,#C4BCB1);background:transparent;border:1px solid rgba(238,183,98,.18);
  transition:all .26s cubic-bezier(.16,1,.3,1);text-decoration:none;display:inline-flex;align-items:center}
.tv-tool:hover{color:#F8F8F8;border-color:rgba(238,183,98,.45);background:var(--surface-2,#211810);transform:translateY(-1px)}
.tv-tool.primary{color:#120E06;border-color:transparent;
  background:linear-gradient(100deg,#EEB762,#F3DBB2)}
.tv-tool.primary:hover{color:#120E06;box-shadow:0 10px 24px -12px rgba(238,183,98,.75)}

/* stepper */
.tv-steps{list-style:none;display:flex;margin:0 0 18px;padding:0;gap:0;flex-wrap:wrap}
.tv-steps li{position:relative;flex:1 1 0;min-width:104px;padding-top:20px;
  font-size:.76rem;color:var(--muted-2,#AEA8A1);text-align:center}
.tv-steps li i{position:absolute;top:5px;left:50%;transform:translateX(-50%);
  width:11px;height:11px;border-radius:50%;background:#0D0B08;
  border:1.5px solid rgba(238,183,98,.28);z-index:2;transition:all .3s ease}
.tv-steps li::before{content:"";position:absolute;top:10px;left:0;right:50%;height:1.5px;
  background:rgba(238,183,98,.15)}
.tv-steps li::after{content:"";position:absolute;top:10px;left:50%;right:0;height:1.5px;
  background:rgba(238,183,98,.15)}
.tv-steps li:first-child::before,.tv-steps li:last-child::after{display:none}
.tv-steps li.done i{background:#EEB762;border-color:#EEB762}
.tv-steps li.done::before,.tv-steps li.done::after{background:#8A6B3A}
.tv-steps li.now{color:#EEB762;font-weight:600}
.tv-steps li.now i{background:#F3DBB2;border-color:#F3DBB2;
  box-shadow:0 0 0 4px rgba(238,183,98,.16)}
.tv-steps li.now::before{background:#8A6B3A}

/* fact strip */
.tv-facts{display:flex;flex-wrap:wrap;gap:0;margin:0;padding:0;border-radius:12px;overflow:hidden;
  background:#0D0B08;border:1px solid rgba(238,183,98,.12)}
.tv-facts > div{flex:1 1 auto;min-width:132px;padding:12px 15px;
  border-right:1px solid rgba(238,183,98,.09)}
.tv-facts > div:last-child{border-right:0}
.tv-facts dt{margin:0 0 4px;font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:8.5px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2,#AEA8A1)}
.tv-facts dd{margin:0;font-size:.86rem;font-weight:600;color:#F8F8F8}
.tv-facts .sla dd{color:#EEB762}
.tv-facts .sla.warn dd,.tv-facts .sla.danger dd{color:#ffb4b4}
.tv-facts .sla.ok dd,.tv-facts .sla.good dd{color:#22C55E}
.tv-guide{margin:14px 0 0;padding:12px 15px;border-radius:10px;font-size:.84rem;line-height:1.6;
  color:#c9c4bb;background:rgba(238,183,98,.07);border:1px solid rgba(238,183,98,.2)}

/* ================================================================
   HELP HOME — .hc-*

   Replaces the inherited stat strip and the two card grids. Nothing here
   is a grid of equal-weight cards: the page is a lede, a routing list, a
   dense topic list and then the SAME numbered row component /search and
   /category use (.kb-results, above), so the three pages read as one
   knowledge base rather than three products.
   ================================================================ */
.hc-open{padding-bottom:26px;margin-bottom:34px;border-bottom:1px solid rgba(238,183,98,.12)}
.hc-lede{margin:0;max-width:62ch;font-size:1.02rem;line-height:1.72;color:#c9c4bb}
.hc-counts{list-style:none;display:flex;flex-wrap:wrap;gap:0;margin:22px 0 0;padding:0;
  border-radius:12px;overflow:hidden;background:#0D0B08;border:1px solid rgba(238,183,98,.12)}
.hc-counts li{flex:1 1 auto;min-width:150px;padding:14px 18px;
  border-right:1px solid rgba(238,183,98,.09)}
.hc-counts li:last-child{border-right:0}
.hc-counts b{display:block;font-family:var(--au-mono,"JetBrains Mono",ui-monospace,Menlo,monospace);
  font-size:1.5rem;font-weight:700;letter-spacing:-.02em;color:#EEB762;font-variant-numeric:tabular-nums}
.hc-counts span{display:block;margin-top:5px;font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);
  font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2,#AEA8A1)}

.hc-sec{margin-bottom:40px}
.hc-sec:last-child{margin-bottom:0}
.hc-sec-h{margin-bottom:18px}
.hc-sec-h-row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}
.hc-kicker{margin:0 0 8px;font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);
  font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:#AD8749}
.hc-sec-h h2{font-size:clamp(1.18rem,2.3vw,1.5rem);font-weight:700;color:#F8F8F8;letter-spacing:-.025em}
.hc-sub{margin:9px 0 0;max-width:64ch;font-size:.9rem;line-height:1.7;color:var(--muted,#C4BCB1)}
.hc-more{display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border-radius:9px;
  font-size:.83rem;font-weight:600;color:#EEB762;border:1px solid rgba(238,183,98,.28);
  transition:background .26s ease,border-color .26s ease,transform .26s cubic-bezier(.16,1,.3,1)}
.hc-more:hover{background:var(--surface-2,#211810);border-color:#EEB762;transform:translateY(-2px)}
.hc-none{margin:0;padding:20px;border-radius:12px;font-size:.88rem;color:var(--muted,#C4BCB1);
  background:#0D0B08;border:1px dashed rgba(238,183,98,.2)}

/* the support desks — who answers what, not a card per desk */
.hc-desks{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:1px;margin:0;padding:0;border-radius:13px;overflow:hidden;
  background:rgba(238,183,98,.12);border:1px solid rgba(238,183,98,.12)}
.hc-desk{padding:18px 20px;background:var(--surface,#171109)}
.hc-desk-n{display:block;margin-bottom:9px;font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);
  font-size:9.5px;letter-spacing:.14em;color:#AD8749}
.hc-desk b{display:block;font-size:.96rem;font-weight:600;color:#F8F8F8;line-height:1.35}
.hc-desk p{margin:7px 0 0;font-size:.85rem;line-height:1.65;color:var(--muted,#C4BCB1)}
.hc-cta{display:inline-flex;align-items:center;gap:9px;margin-top:16px;padding:11px 19px;
  border-radius:10px;font-size:.87rem;font-weight:700;color:#120E06;
  background:linear-gradient(100deg,#EEB762,#F3DBB2);
  box-shadow:0 12px 30px -16px rgba(238,183,98,.7);
  transition:transform .22s cubic-bezier(.16,1,.3,1),box-shadow .3s ease}
.hc-cta:hover{transform:translateY(-2px);box-shadow:0 20px 40px -18px rgba(238,183,98,.85)}

/* the topic list — two dense columns, not a card grid */
.hc-topics{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
  gap:2px;margin:0;padding:0}
.hc-topics a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 16px;align-items:baseline;
  padding:13px 14px;border-radius:11px;border:1px solid transparent;
  transition:background .26s ease,border-color .26s ease,transform .26s cubic-bezier(.16,1,.3,1)}
.hc-topics a:hover{background:var(--surface,#171109);border-color:rgba(238,183,98,.2);transform:translateX(3px)}
.hc-topic-t{font-size:.94rem;font-weight:600;color:#F8F8F8;line-height:1.35}
.hc-topic-d{grid-column:1/-1;font-size:.81rem;line-height:1.6;color:var(--muted,#C4BCB1);max-width:64ch}
.hc-topic-n{justify-self:end;white-space:nowrap;
  font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:9px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2,#AEA8A1);font-variant-numeric:tabular-nums}
.hc-topics a:hover .hc-topic-n{color:#EEB762}
/* The featured list on the HOME page only. /search and /category show the
   full excerpt because there the excerpt IS the result; here eight of them
   in a row is a wall of text under a heading that says "start with these".
   Scoped to .hc-sec so the two pages that own .kb-results are untouched. */
.hc-sec .kb-ex{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden}

/* ================================================================
   TICKET VIEW — .tv-* body

   One column in the DOM. The inherited page put four metadata panels in a
   sticky right rail and then reflowed them underneath with `order`, so the
   reading order and the DOM order disagreed. There is no rail here: the
   thread is the page, and the record is a closed <details> beneath it.
   ================================================================ */
.fpfx-help .tv-guide b{color:#F3DBB2;font-weight:600}
.tv-guide[data-tone="action"]{background:rgba(238,183,98,.11);border-color:rgba(238,183,98,.34)}
.tv-guide[data-tone="done"]{background:rgba(34,197,94,.07);border-color:rgba(34,197,94,.26)}
.tv-guide[data-tone="done"] b{color:#7ee0a0}

/* status and priority chips, in the head and again in the record */
.tv-badge{display:inline-block;padding:5px 11px;border-radius:20px;
  font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:9px;
  letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;
  background:var(--surface-2,#211810);border:1px solid rgba(238,183,98,.15);color:var(--muted,#C4BCB1)}
.tv-badge.tv-s-pending_customer{color:#EEB762;border-color:rgba(238,183,98,.42);background:rgba(238,183,98,.1)}
.tv-badge.tv-s-resolved,.tv-badge.tv-s-closed{color:#22C55E;border-color:rgba(34,197,94,.3);background:rgba(34,197,94,.08)}
.tv-badge.tv-s-new,.tv-badge.tv-s-open,.tv-badge.tv-s-reopened{color:#EEB762;border-color:rgba(238,183,98,.3);background:rgba(238,183,98,.08)}
.tv-prio{display:inline-block;padding:5px 11px;border-radius:20px;
  font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:9px;
  letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;color:var(--muted-2,#AEA8A1);
  background:#0D0B08;border:1px solid rgba(238,183,98,.13)}
.tv-prio.tv-p-high,.tv-prio.tv-p-urgent{color:#ffb4b4;border-color:rgba(239,68,68,.32)}

/* one column */
.tv-body{display:flex;flex-direction:column;gap:20px;min-width:0}
.tv-body > *{min-width:0}
.tv-kicker{margin:0 0 6px;font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);
  font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:#AD8749}
.tv-none{margin:0;padding:18px;border-radius:11px;font-size:.86rem;color:var(--muted,#C4BCB1);
  background:#0D0B08;border:1px dashed rgba(238,183,98,.2)}
.tv-field-l{display:block;margin-bottom:7px;
  font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:9px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2,#AEA8A1)}
.tv-hint{font-size:.78rem;color:var(--muted-2,#AEA8A1)}

/* shared form primitives inside the ticket view */
.tv-body .input,.tv-body .textarea{width:100%;padding:12px 14px;border-radius:11px;
  font-family:inherit;font-size:.92rem;line-height:1.7;background:#0D0B08;color:#F8F8F8;
  border:1px solid rgba(238,183,98,.15);
  transition:border-color .28s ease,background .28s ease}
.tv-body .input:focus,.tv-body .textarea:focus{outline:none;border-color:rgba(238,183,98,.5);background:var(--surface-2,#211810)}
.tv-body .textarea{resize:vertical}
.tv-body .input::placeholder,.tv-body .textarea::placeholder{color:var(--muted-2,#AEA8A1)}

/* buttons */
.tv-text-btn{cursor:pointer;padding:6px 10px;border-radius:8px;font-family:inherit;
  font-size:.79rem;font-weight:600;color:var(--muted,#C4BCB1);background:transparent;
  border:1px solid rgba(238,183,98,.18);transition:all .26s ease}
.tv-text-btn:hover{color:#F8F8F8;border-color:rgba(238,183,98,.42);background:var(--surface-2,#211810)}
.fpfx-help .hp-btn.tv-ghost{color:#EEB762 !important;background:none;border:1px solid rgba(238,183,98,.32);
  box-shadow:none}
.fpfx-help .hp-btn.tv-ghost:hover{background:var(--surface-2,#211810);border-color:#EEB762;box-shadow:none}
.fpfx-help .hp-btn{cursor:pointer;font-family:inherit;border:1px solid transparent}
.tv-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;
  flex-wrap:wrap;margin-top:16px}
.tv-shortcuts{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  font-size:.76rem;color:var(--muted-2,#AEA8A1)}
.tv-shortcuts kbd{padding:2px 6px;border-radius:5px;
  font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:9.5px;
  background:var(--surface-2,#211810);border:1px solid rgba(238,183,98,.18);color:#c9c4bb}

/* the thread */
.tv-thread{min-width:0}
.tv-thread-h{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px;
  padding-bottom:13px;border-bottom:1px solid rgba(238,183,98,.12)}
.tv-thread-h h2{font-size:1.06rem;font-weight:700;color:#F8F8F8}
.tv-thread-n{font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:9.5px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2,#AEA8A1);font-variant-numeric:tabular-nums}
.tv-jump{margin-left:auto}
.tv-msgs{list-style:none;display:flex;flex-direction:column;gap:13px;margin:0;padding:0}
.tv-msg{padding:17px 19px;border-radius:14px;background:var(--surface,#171109);
  border:1px solid rgba(238,183,98,.13);min-width:0}
/* the staff message is marked THREE ways — surface, gold left edge and the
   "Verified" chip — so it never depends on colour alone */
.tv-msg.is-staff{background:linear-gradient(160deg,#211810,#171109);
  border-color:rgba(238,183,98,.28);border-left:3px solid #8A6B3A}
.tv-msg-h{display:flex;align-items:center;gap:11px;flex-wrap:wrap;margin-bottom:12px}
.tv-msg-av{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:11px;
  font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:10.5px;font-weight:700;
  color:#F3DBB2;background:var(--surface-3,#2E2116);border:1px solid rgba(238,183,98,.22)}
.tv-msg.is-staff .tv-msg-av{color:#120E06;border-color:transparent;
  background:linear-gradient(140deg,#EEB762,#F3DBB2)}
.tv-msg-who{min-width:0}
.tv-msg-who b{display:block;font-size:.88rem;font-weight:600;color:#F8F8F8}
.tv-msg-who small{display:block;margin-top:2px;font-size:.74rem;color:var(--muted-2,#AEA8A1)}
.tv-msg-ok{display:inline-flex;align-items:center;padding:3px 9px;border-radius:20px;font-style:normal;
  font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:8.5px;letter-spacing:.1em;
  text-transform:uppercase;color:#22C55E;background:rgba(34,197,94,.08);border:1px solid rgba(34,197,94,.28)}
.tv-msg-t{margin-left:auto;text-align:right;font-size:.76rem;color:var(--muted,#C4BCB1);white-space:nowrap}
.tv-msg-t small{display:block;margin-top:2px;
  font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:8.5px;
  letter-spacing:.08em;color:var(--muted-2,#AEA8A1)}
.tv-msg-c{color:#a9a49b;font-size:.92rem;line-height:1.75;overflow-wrap:anywhere}
.tv-msg-c > *:first-child{margin-top:0}
.tv-msg-c > *:last-child{margin-bottom:0}
.tv-msg-c a{color:#EEB762;border-bottom:1px solid rgba(238,183,98,.3)}
.tv-msg-c pre,.tv-msg-c table{overflow-x:auto;max-width:100%}
.tv-msg-c img{max-width:100%;height:auto;border-radius:10px}
.tv-msg-edit{margin:9px 0 0;font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);
  font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2,#AEA8A1)}

/* attachments */
.tv-files{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));
  gap:9px;margin:13px 0 0;padding:0}
.tv-file{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:11px;
  background:#0D0B08;border:1px solid rgba(238,183,98,.14);min-width:0;
  transition:border-color .26s ease,transform .26s cubic-bezier(.16,1,.3,1)}
.tv-file:hover{border-color:rgba(238,183,98,.42);transform:translateY(-2px)}
.tv-file-k{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:9px;
  font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:8.5px;letter-spacing:.06em;
  color:#EEB762;background:rgba(238,183,98,.1);border:1px solid rgba(238,183,98,.2)}
.tv-file-b{min-width:0}
.tv-file-b b{display:block;font-size:.82rem;color:#F8F8F8;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.tv-file-b small{display:block;margin-top:2px;font-size:.72rem;color:var(--muted-2,#AEA8A1)}
.tv-file-go{margin-left:auto;flex:none;color:#EEB762;font-size:.78rem}

/* consent request */
.tv-consent{padding:20px;border-radius:15px;
  background:linear-gradient(160deg,#2E2116,#171109);border:1px solid rgba(238,183,98,.32)}
.tv-consent-h{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.tv-consent-mark{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:9px;
  background:rgba(238,183,98,.14);border:1px solid rgba(238,183,98,.3);color:#EEB762}
.tv-consent-h h2{font-size:1.02rem;font-weight:700;color:#F8F8F8}
.tv-consent-c{color:#a9a49b;font-size:.9rem;line-height:1.72;overflow-wrap:anywhere}
.tv-consent-by{margin:12px 0 0;font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);
  font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#AD8749}
.tv-fields{display:grid;gap:12px;margin-top:16px}
.tv-field label{display:block}
.tv-check{display:flex;align-items:flex-start;gap:10px;font-size:.85rem;line-height:1.6;color:#a9a49b}
.tv-check input{flex:none;margin-top:3px;accent-color:#EEB762}

/* reply composer */
.tv-reply{padding:22px;border-radius:15px;background:var(--surface,#171109);border:1px solid rgba(238,183,98,.2)}
.tv-reply-h{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;
  flex-wrap:wrap;margin-bottom:16px}
.tv-reply-h h2{font-size:1.06rem;font-weight:700;color:#F8F8F8}
.tv-reply-sub{margin:7px 0 0;max-width:60ch;font-size:.85rem;line-height:1.65;color:var(--muted,#C4BCB1)}
.tv-draft{flex:none;font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:9px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2,#AEA8A1)}
.tv-editor-meta{display:flex;align-items:center;justify-content:space-between;gap:16px;
  flex-wrap:wrap;margin-top:9px;font-size:.78rem;color:var(--muted-2,#AEA8A1)}
.tv-chars{font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:9.5px;
  letter-spacing:.08em;color:var(--muted-2,#AEA8A1);font-variant-numeric:tabular-nums}
.tv-chars b{color:#EEB762}
.tv-drop{position:relative;display:flex;align-items:center;gap:13px;flex-wrap:wrap;
  margin-top:14px;padding:18px 20px;border-radius:12px;cursor:pointer;
  background:#0D0B08;border:1px dashed rgba(238,183,98,.3);
  transition:border-color .28s ease,background .28s ease}
.tv-drop:hover,.tv-drop.is-dragging{border-color:#EEB762;background:var(--surface-2,#211810)}
.tv-drop input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.tv-drop-mark{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;
  color:#EEB762;background:rgba(238,183,98,.1);border:1px solid rgba(238,183,98,.22)}
.tv-drop-copy{min-width:0}
.tv-drop-copy b{display:block;font-size:.88rem;color:#F8F8F8}
.tv-drop-copy small{display:block;margin-top:4px;font-size:.76rem;line-height:1.55;color:var(--muted-2,#AEA8A1)}
.tv-drop-limits{margin-left:auto;font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);
  font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2,#AEA8A1);white-space:nowrap}
.tv-filelist{display:grid;gap:8px}
.tv-filelist:not(:empty){margin-top:12px}
.tv-validate{font-size:.8rem;color:#ffb4b4}
.tv-validate:not(:empty){margin-top:10px}
.tv-warn{display:flex;align-items:flex-start;gap:11px;margin:16px 0 0;padding:13px 15px;
  border-radius:11px;font-size:.83rem;line-height:1.6;color:#c9c4bb;
  background:rgba(238,183,98,.06);border:1px solid rgba(238,183,98,.2)}
.tv-warn b{color:#F8F8F8}
.tv-warn > span:first-child{flex:none;color:#EEB762}
.tv-actions-send{padding-top:14px;border-top:1px solid rgba(238,183,98,.1)}
.fpfx-help .hp-btn.tv-send{gap:10px}

/* rating */
.tv-rate{padding:22px;border-radius:15px;background:var(--surface,#171109);border:1px solid rgba(238,183,98,.15)}
.tv-rate h2{font-size:1.02rem;font-weight:700;color:#F8F8F8}
.tv-rate-sub{margin:7px 0 0;max-width:60ch;font-size:.85rem;line-height:1.65;color:var(--muted,#C4BCB1)}
.tv-stars{display:flex;gap:8px;margin:16px 0}
.tv-stars button{display:grid;place-items:center;gap:1px;width:48px;height:48px;cursor:pointer;
  border-radius:12px;font-family:inherit;background:#0D0B08;color:#AD8749;
  border:1px solid rgba(238,183,98,.18);transition:all .26s cubic-bezier(.16,1,.3,1)}
.tv-stars button span{font-size:1.05rem;line-height:1}
.tv-stars button b{font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);
  font-size:8.5px;font-weight:700;color:var(--muted-2,#AEA8A1)}
.tv-stars button:hover{border-color:rgba(238,183,98,.5);transform:translateY(-2px)}
/* the chosen stars are marked by fill AND by border AND by aria-pressed, so
   the choice survives a monochrome display and a screen reader alike */
.tv-stars button.selected{color:#120E06;border-color:transparent;
  background:linear-gradient(140deg,#EEB762,#F3DBB2)}
.tv-stars button.selected b{color:rgba(18,14,6,.66)}
.tv-rated{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:0;padding:15px 18px;
  border-radius:13px;font-size:.88rem;color:#a9a49b;
  background:rgba(34,197,94,.07);border:1px solid rgba(34,197,94,.26)}
.tv-rated > span:first-child{color:#EEB762}
.tv-rated b{color:#F8F8F8}

/* the record — four inherited panels, one closed disclosure */
.tv-record{border-radius:14px;background:#0D0B08;border:1px solid rgba(238,183,98,.13);
  overflow:hidden}
.tv-record-s{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding:15px 19px;
  cursor:pointer;list-style:none;transition:background .26s ease}
.tv-record-s::-webkit-details-marker{display:none}
.tv-record-s::after{content:"+";margin-left:auto;font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);
  font-size:1rem;line-height:1;color:#EEB762;transition:transform .28s cubic-bezier(.16,1,.3,1)}
.tv-record[open] .tv-record-s::after{content:"\2212"}
.tv-record-s:hover{background:var(--surface,#171109)}
.tv-record-s > span{font-family:var(--au-disp,"Outfit",system-ui,sans-serif);font-size:.95rem;
  font-weight:600;color:#F8F8F8}
.tv-record-s small{font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:9px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2,#AEA8A1)}
.tv-record-b{padding:4px 19px 19px}
.tv-rec{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1px;margin:0;
  border-radius:11px;overflow:hidden;background:rgba(238,183,98,.1)}
.tv-rec > div{padding:12px 15px;background:var(--surface,#171109)}
.tv-rec-wide{grid-column:1/-1}
.tv-rec dt{margin:0 0 5px;font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);
  font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2,#AEA8A1)}
.tv-rec dd{margin:0;font-size:.86rem;font-weight:600;color:#F8F8F8;overflow-wrap:anywhere}
.tv-rec dd small{display:block;margin-top:3px;font-weight:400;
  font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:8.5px;
  letter-spacing:.08em;color:var(--muted-2,#AEA8A1)}
.tv-rec-email{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tv-rec-email code{font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:.78rem;
  font-weight:400;color:#F3DBB2;word-break:break-all}
.tv-rec-h{display:flex;align-items:center;gap:10px;margin:22px 0 11px;font-size:.82rem;
  font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted,#C4BCB1)}
.tv-rec-h span{padding:2px 8px;border-radius:20px;
  font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:9px;
  background:var(--surface-2,#211810);border:1px solid rgba(238,183,98,.15);color:var(--muted-2,#AEA8A1);font-variant-numeric:tabular-nums}
.tv-events{list-style:none;position:relative;margin:0;padding:0 0 0 20px}
.tv-events::before{content:"";position:absolute;left:4px;top:7px;bottom:9px;width:1.5px;
  background:rgba(238,183,98,.15)}
.tv-ev{position:relative;padding-bottom:14px;font-size:.82rem;color:var(--muted,#C4BCB1)}
.tv-ev::before{content:"";position:absolute;left:-20px;top:5px;width:9px;height:9px;border-radius:50%;
  background:#0D0B08;border:1.5px solid rgba(238,183,98,.42)}
.tv-ev b{display:block;font-size:.84rem;font-weight:600;color:#c9c4bb;line-height:1.45}
.tv-ev span{display:block;margin-top:3px;font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);
  font-size:8.5px;letter-spacing:.08em;color:var(--muted-2,#AEA8A1)}
/* help.js toggles .is-expanded on .history-panel; both strings are its
   contract, so the rule is written around them rather than renamed */
.tv-ev.is-collapsed{display:none}
.history-panel.is-expanded .tv-ev.is-collapsed{display:block}
.tv-more{width:100%;margin-top:4px;padding:10px;cursor:pointer;border-radius:9px;
  font-family:var(--au-mono,"JetBrains Mono",ui-monospace,monospace);font-size:9px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2,#AEA8A1);
  background:rgba(238,183,98,.05);border:1px solid rgba(238,183,98,.15);
  transition:all .26s ease}
.tv-more:hover{color:#F8F8F8;background:rgba(238,183,98,.1);border-color:rgba(238,183,98,.32)}

/* ticket not found / access expired */
.tv-gone{padding:46px 26px;text-align:center;border-radius:15px;background:var(--surface,#171109);
  border:1px dashed rgba(238,183,98,.24)}
.tv-gone-mark{display:grid;place-items:center;width:50px;height:50px;margin:0 auto 14px;
  border-radius:15px;font-size:1.3rem;color:#EEB762;background:rgba(238,183,98,.1);
  border:1px solid rgba(238,183,98,.22)}
.tv-gone b{display:block;font-size:1.06rem;color:#F8F8F8}
.tv-gone p{margin:9px auto 22px;max-width:50ch;font-size:.88rem;color:var(--muted,#C4BCB1)}

/* --------- narrow --------- */
@media (max-width:640px){
  .hc-counts li{min-width:0;flex:1 1 100%;border-right:0;
    border-bottom:1px solid rgba(238,183,98,.09)}
  .hc-counts li:last-child{border-bottom:0}
  .hc-topics a{grid-template-columns:minmax(0,1fr)}
  .hc-topic-n{justify-self:start}
  .tv-msg-t{margin-left:0;width:100%;text-align:left}
  .tv-drop-limits{margin-left:0;width:100%;white-space:normal}
  .tv-actions{align-items:stretch}
  .tv-body .tv-actions .hp-btn{justify-content:center}
}

/* --------- print ---------
   The inherited print block in help/assets/css/help.css hides .ticket-tools,
   .reply-card-pro, .rating-card-pro, .ticket-quick-actions and
   .history-toggle by name. None of those names exists any more, so the
   equivalents are restated here. A closed <details> hides its own body
   through a UA rule, so the record is forced open for print — otherwise
   "Save ticket record" would print a ticket with no record in it. */
@media print{
  .tv-tools,.tv-reply,.tv-rate,.tv-jump,.tv-more,.tv-consent .tv-actions{display:none !important}
  .tv-record > .tv-record-b{display:block !important}
  .tv-record-s::after{display:none}
  .tv-ev.is-collapsed{display:block !important}
  .tv-head,.tv-msg,.tv-record,.tv-rec > div{background:#fff !important;color:#111 !important;
    border-color:#ddd !important;box-shadow:none !important}
  .tv-head h1,.tv-thread-h h2,.tv-record-s > span,.tv-msg-who b,.tv-rec dd{color:#111 !important}
  .tv-msg-c,.tv-guide,.tv-ev,.tv-ev b,.tv-facts dd{color:#333 !important}
}

/* Aurora runs at .38 on any screen carrying tabular figures, and the ticket
   view now carries a stepper, a fact strip and a record table. Scoped with
   :has() because the variable has to be set on the element the .au-aurora
   layer inherits from — <body> — and help/_layout.php is not this builder's
   file to add a body class to. A browser without :has() simply keeps the
   marketing strength, which is the current behaviour, so nothing regresses. */
.fpfx-help:has(.tv-body),.fpfx-help:has(.tv-head){--aurora-strength:.38}
