/* ============================================================
   Global Tech storefront: account flows (/new/sign-in, /new/apply, /new/password/*, /new/cart, /new/saved, /new/track).
   Builds on gt.css, gt-pages.css and v2.css (tokens, .auth, .citem, .summary, .form). Only what those lack lives here.
   Every colour is a token, so light and dark both work.
   ============================================================ */

.fl-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- messages ---------- */
.fl-note{display:flex;gap:10px;align-items:flex-start;margin:0 0 14px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);font-size:13.5px;line-height:1.45;color:var(--ink)}
.fl-note p{margin:0;min-width:0;overflow-wrap:anywhere}
.fl-dot{width:8px;height:8px;border-radius:50%;margin-top:6px;flex:0 0 8px;background:var(--blue)}
.fl-note.is-error{border-color:var(--red);color:var(--red-ink);font-weight:600}
.fl-note.is-error .fl-dot{background:var(--red)}
.fl-note.is-warning{border-color:var(--amber);background:var(--amber-bg);color:var(--amber-ink)}
.fl-note.is-warning .fl-dot{background:var(--amber)}
.fl-note.is-success{border-color:var(--green);background:var(--green-bg);color:var(--green-ink)}
.fl-note.is-success .fl-dot{background:var(--green)}
.fl-note.is-info{background:var(--blue-50);color:var(--blue-ink)}

/* ---------- sign in / apply ---------- */
.fl-auth{min-height:auto}
.fl-auth .auth-art{justify-content:flex-start}
.fl-auth .auth-art li b{color:#fff}
.fl-auth .auth-card{min-width:0}
.fl-auth .auth-card.fl-wide{max-width:560px}
.fl-tabs a{height:40px;border-radius:7px;font-weight:600;font-size:14px;color:var(--ink-2);display:grid;place-items:center;text-align:center;padding:0 8px;line-height:1.2}
.fl-tabs a:hover{color:var(--blue)}
.fl-tabs a[aria-current="page"]{background:var(--canvas);color:var(--blue);box-shadow:var(--sh-1)}
.fl-tabs a:focus-visible{outline:2px solid var(--blue-400);outline-offset:1px}
.fl-alt{margin:18px 0 0;font-size:13.5px;color:var(--ink-2)}
.fl-alt a{color:var(--blue);font-weight:600}
.fl-alt a:hover{text-decoration:underline}
.fl-hint{font-size:12px;color:var(--ink-3)}
.fl-h{margin:0 0 8px;font-size:24px;font-weight:800;letter-spacing:-.5px}
.fl-terms{padding:2px 0}
.form .aux .chk{padding:0}
.fl-pass{position:relative}
.fl-pass .inp{width:100%;padding-right:68px}
.fl-reveal{position:absolute;right:6px;top:50%;transform:translateY(-50%);height:32px;padding:0 10px;border-radius:var(--r-sm);font-size:12.5px;font-weight:600;color:var(--blue)}
.fl-reveal:hover{background:var(--blue-50)}
.fl-reveal:focus-visible{outline:2px solid var(--blue-400);outline-offset:1px}
.fl-code{letter-spacing:6px;font-size:18px;max-width:220px}
.fl-steps{list-style:none;margin:6px 0 4px;padding:0;display:grid;gap:12px;counter-reset:st}
.fl-steps li{position:relative;padding:12px 14px 12px 48px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);display:grid;gap:2px;font-size:13.5px;color:var(--ink-2)}
.fl-steps li::before{counter-increment:st;content:counter(st);position:absolute;left:14px;top:12px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:#fff;font:700 12px/1 Inter}
.fl-steps b{color:var(--ink)}

/* ---------- empty and gate panels ---------- */
.fl-empty,.fl-gate{margin:0 0 56px}
.fl-empty h2,.fl-gate h1{margin:0 0 6px;color:var(--ink);font-size:20px}
.fl-empty p,.fl-gate p{margin:0 auto;max-width:52ch}
.fl-empty .row,.fl-gate .row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:16px}
.fl-empty .row .btn,.fl-gate .row .btn{margin-top:0}

/* ---------- cart and saved lines ---------- */
.fl-lines{list-style:none;margin:0;padding:0}
.fl-lines .citem{margin:0}
.fl-info{min-width:0}
.fl-info h3{overflow-wrap:anywhere}
.fl-info .sku{display:block;line-height:1.5}
.fl-flag{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:6px}
.fl-flag form{display:inline}
.fl-flag .btn{height:28px;padding:0 10px;font-size:12.5px}
.fl-flag .clink,.fl-signin .clink{color:var(--blue);font-weight:600;font-size:13px}
.fl-flag .clink:hover,.fl-signin .clink:hover{text-decoration:underline}
.fl-aside{background:var(--surface)}
.fl-aside .lt{color:var(--ink-3)}
.fl-qty{display:flex;align-items:center;gap:6px}
.fl-qty .qty input{width:46px}
.fl-js .fl-upd{display:none}
.fl-qty-fixed{flex-direction:column;align-items:flex-start;gap:2px;max-width:190px;font-size:13px;color:var(--ink-2)}
.fl-qty-fixed b{color:var(--ink);font-size:15px}
.fl-qty-fixed small{font-size:11.5px;line-height:1.4;color:var(--ink-3)}
.fl-qty-fixed .clink{color:var(--blue);font-weight:600}
.fl-cart .citem{grid-template-columns:84px minmax(0,1fr) auto minmax(110px,max-content) 36px}
.fl-cart .citem .lt small{white-space:nowrap}
.citem form{margin:0}
.rm:focus-visible{outline:2px solid var(--blue-400);outline-offset:1px}
.fl-under{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.fl-under .btn svg{margin-right:2px}

.fl-saved .citem{grid-template-columns:84px minmax(0,1fr) auto auto 36px}
.fl-saved .fl-price{min-width:130px}
.fl-acts{display:flex;gap:8px;justify-content:flex-end}
.fl-saved+.fl-under{margin-bottom:56px}

/* ---------- summary ---------- */
.fl-sh{margin:0 0 4px;font-size:17px}
.fl-small{margin:0;font-size:12.5px;line-height:1.5;color:var(--ink-2)}
.fl-warn{color:var(--amber-ink);font-weight:600}
.summary .btn svg{margin-left:4px}
.fl-quote{border-top:1px solid var(--line);padding-top:12px}
.fl-quote summary{cursor:pointer;font-weight:700;font-size:14px;color:var(--blue);list-style:none;display:flex;align-items:center;gap:8px;min-height:32px}
.fl-quote summary::-webkit-details-marker{display:none}
.fl-quote summary::after{content:"+";margin-left:auto;font-size:18px;line-height:1}
.fl-quote[open] summary::after{content:"\2212"}
.fl-quote summary:focus-visible{outline:2px solid var(--blue-400);outline-offset:2px;border-radius:4px}
.fl-quote .form{margin-top:10px;gap:10px}
.fl-quote .fl-small{margin-top:6px}

/* ---------- track ---------- */
.fl-track{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:24px;align-items:start;padding-bottom:56px}
.fl-track .panel{margin:0}
.fl-track h2{margin:0;font-size:16px}
.fl-signin{margin-top:14px}
.fl-result:focus{outline:0}
.fl-result .pad{display:grid;gap:14px;justify-items:start}
.fl-tl{list-style:none;margin:0;padding:6px 0 0;width:100%;display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
.fl-tl li{position:relative;padding-top:28px;text-align:center;font-size:12.5px;font-weight:600;color:var(--ink-3)}
.fl-tl li::before{content:"";position:absolute;top:4px;left:50%;width:16px;height:16px;margin-left:-8px;border-radius:50%;background:var(--canvas);border:2px solid var(--line);z-index:1}
.fl-tl li::after{content:"";position:absolute;top:11px;left:-50%;width:100%;height:2px;background:var(--line)}
.fl-tl li:first-child::after{display:none}
.fl-tl li.done,.fl-tl li.now{color:var(--ink)}
.fl-tl li.done::before{background:var(--green);border-color:var(--green)}
.fl-tl li.now::before{border-color:var(--blue);box-shadow:0 0 0 4px var(--blue-50)}
.fl-tl li.done::after,.fl-tl li.now::after{background:var(--green)}
.fl-recent{list-style:none;margin:0;padding:0}
.fl-recent li+li{border-top:1px solid var(--line)}
.fl-recent a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-size:13.5px}
.fl-recent a:hover{background:var(--surface)}
.fl-recent a:focus-visible{outline:2px solid var(--blue-400);outline-offset:-2px}

/* ---------- smaller screens ---------- */
@media (max-width:1100px){
  .fl-track{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:860px){
  .fl-cart .citem{grid-template-columns:64px minmax(0,1fr) 36px}
  .fl-qty-fixed{max-width:none}
  .fl-saved .citem{grid-template-columns:64px minmax(0,1fr) 36px}
  .fl-saved .fl-price,.fl-saved .fl-acts{grid-column:2}
  .fl-acts{justify-content:flex-start}
  .fl-qty{flex-wrap:wrap}
}
@media (max-width:560px){
  .fl-auth .auth-art{padding:28px 16px}
  .fl-auth .auth-art h2{font-size:26px}
  .fl-auth .auth-form{padding:24px 16px 40px}
  .fl-tl{grid-template-columns:minmax(0,1fr);gap:0}
  .fl-tl li{text-align:left;padding:0 0 18px 30px}
  .fl-tl li::before{top:1px;left:0;margin-left:0}
  .fl-tl li::after{top:-18px;left:7px;width:2px;height:20px}
  .fl-tl li:last-child{padding-bottom:0}
  .fl-quote summary{min-height:44px}
}
