/* SIGN-IN GATE styles (2026-11-02). Own file, linked after dense-app.css. Edition colours are the gate's own --g-acc / --g-acc-ink (burnt orange #c2410c; contractor green #0f6b5c), not the app theme.
   Density law: card padding 16, fields 40, gaps 12, text 13-15, nothing over 40px except the 36px mark. */
:root:has(.gt-page),.gt-page{--g-acc:#c2410c;--g-acc-ink:#fff;--gt-bg:#f6f1e7;--gt-card:#fff;--gt-ink:#1b1612;--gt-mut:#6b6258;--gt-line:#cfc5b6;--gt-bad:#a1281d;--gt-badbg:#fde3df;--gt-shadow:0 1px 2px rgba(60,40,20,.06),0 8px 24px rgba(60,40,20,.10)}
.gt-page{
  display:flex;flex-direction:column;align-items:center;min-height:100vh;min-height:100svh;padding:max(24px,17vh) 0 14px;background:var(--gt-bg);box-shadow:0 0 0 100vmax var(--gt-bg);color:var(--gt-ink);font-size:14px;line-height:1.35}
:root:has(.gt-page[data-brand=contractormate]),.gt-page[data-brand=contractormate]{--g-acc:#0f6b5c;--gt-bg:#eaf3ef;--gt-line:#bfd2cb;--gt-mut:#53655f;--gt-ink:#13221e;--gt-shadow:0 1px 2px rgba(10,50,40,.06),0 8px 24px rgba(10,50,40,.10)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]):has(.gt-page),:root:not([data-theme=light]) .gt-page{--g-acc:#fb923c;--g-acc-ink:#1a0e05;--gt-bg:#15120f;--gt-card:#201b17;--gt-ink:#f3ece2;--gt-mut:#b3a799;--gt-line:#4a4036;--gt-bad:#ff9a8f;--gt-badbg:#3a1a16;--gt-shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.45)}
  :root:not([data-theme=light]):has(.gt-page[data-brand=contractormate]),:root:not([data-theme=light]) .gt-page[data-brand=contractormate]{--g-acc:#5fd3bc;--g-acc-ink:#06201b;--gt-bg:#0c1815;--gt-card:#142420;--gt-ink:#e6f1ee;--gt-mut:#9bb3ab;--gt-line:#2f4943}}
:root[data-theme=dark]:has(.gt-page),:root[data-theme=dark] .gt-page{--g-acc:#fb923c;--g-acc-ink:#1a0e05;--gt-bg:#15120f;--gt-card:#201b17;--gt-ink:#f3ece2;--gt-mut:#b3a799;--gt-line:#4a4036;--gt-bad:#ff9a8f;--gt-badbg:#3a1a16;--gt-shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.45)}
:root[data-theme=dark]:has(.gt-page[data-brand=contractormate]),:root[data-theme=dark] .gt-page[data-brand=contractormate]{--g-acc:#5fd3bc;--g-acc-ink:#06201b;--gt-bg:#0c1815;--gt-card:#142420;--gt-ink:#e6f1ee;--gt-mut:#9bb3ab;--gt-line:#2f4943}
html:has(.gt-page),body:has(.gt-page){background:var(--gt-bg,#f6f1e7)}
#app:has(.gt-page){padding:0 16px;max-width:none}
.gt-card{width:100%;max-width:360px;background:var(--gt-card);border-radius:16px;box-shadow:var(--gt-shadow);padding:16px;border:1px solid var(--gt-line)}
.gt-brand{display:flex;align-items:center;gap:10px;height:36px}
.gt-mark{flex:none;display:block}.gt-g{stroke:var(--g-acc-ink)}.gt-mark-bg{fill:var(--g-acc)}
.gt-wm{margin:0;font:800 20px/1.1 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;letter-spacing:-.02em;color:var(--gt-ink)}
.gt-card h1.gt-title{font-size:20px;line-height:1.2;margin:12px 0 2px;color:var(--gt-ink)}
.gt-sub{margin:0 0 12px;font-size:13px;color:var(--gt-mut)}
.gt-card form{margin:0}
.gt-f{position:relative;margin:0 0 12px}
.gt-f input{display:block;width:100%;height:40px;min-height:40px;margin:0;padding:0 12px;font-size:14px;color:var(--gt-ink);background:transparent;border:1px solid var(--gt-line);border-radius:8px;outline:0;-webkit-appearance:none;appearance:none}
.gt-f input:focus{border:2px solid var(--g-acc);padding:0 11px;outline:0}
.gt-f .gpw-wrap>input{padding-left:12px}
.gt-f .gpw-wrap.gpw-eye>input{padding-right:42px!important}
.gt-f .gpw-wrap.gpw-eye>input:focus{padding-left:11px;padding-right:41px!important}
.gt-l{position:absolute;left:10px;top:11px;margin:0;padding:0 4px;font-size:14px;font-weight:400;line-height:18px;color:var(--gt-mut);background:var(--gt-card);pointer-events:none;transition:top .12s,font-size .12s,color .12s;max-width:calc(100% - 20px);white-space:nowrap}
.gt-f:focus-within .gt-l,.gt-f.has-val .gt-l,.gt-f:has(input:not(:placeholder-shown)) .gt-l,.gt-f:has(input:-webkit-autofill) .gt-l{top:-9px;font-size:13px;line-height:16px}
.gt-f:focus-within .gt-l{color:var(--g-acc)}
.gt-f input:-webkit-autofill{-webkit-text-fill-color:var(--gt-ink);box-shadow:0 0 0 40px var(--gt-card) inset;caret-color:var(--gt-ink)}
.gt-f .gpw-wrap>button.gpw-btn{color:var(--gt-mut)}
.gt-keep{display:flex;align-items:center;gap:8px;margin:0 0 12px;min-height:28px;font-size:14px;font-weight:400;color:var(--gt-ink);cursor:pointer}
.gt-keep .gt-box{flex:none;width:24px;height:24px;min-height:24px;margin:0;accent-color:var(--g-acc)}
.gt-hint{font-size:13px;color:var(--gt-mut)}
.gt-card .err{margin:0 0 12px;padding:8px 10px;font-size:13px;line-height:1.35;color:var(--gt-bad);background:var(--gt-badbg);border:1px solid var(--gt-bad);border-radius:8px}
.gt-card .err:empty,.gt-card .gt-errwrap:empty{display:none}
.gt-card button.full{display:block;width:100%;height:40px;min-height:40px;margin:0;padding:0 14px;font-size:15px;font-weight:700;border-radius:8px;background:var(--g-acc);color:var(--g-acc-ink);border:0}
.gt-card button.full:focus-visible{outline:2px solid var(--g-acc);outline-offset:2px}
.gt-foot{margin:auto 0 0;padding-top:16px;font-size:13px;color:var(--gt-mut);text-align:center}
@media (prefers-reduced-motion:reduce){.gt-l{transition:none}}
/* Google sign-in button (2026-11-02): first and primary, icon only, 40px. The email form below is the second way. */
.gt-card .gt-g-btn{display:flex;align-items:center;justify-content:center;width:100%;height:40px;min-height:40px;margin:0 0 12px;padding:0;background:#fff;border:1px solid var(--gt-line);border-radius:8px;cursor:pointer}
.gt-card .gt-g-btn:focus-visible{outline:2px solid var(--g-acc);outline-offset:2px}
.gt-card .gt-or{height:1px;margin:0 0 12px;background:var(--gt-line)}
