/* Only the personal login loads this stylesheet. */
.tyrion-login-page {
  --login-bg:#f2f5fa; --login-ink:#193858; --login-muted:#526780;
  --login-card:#f9fbfff2; --login-line:#b8cbe2; --login-accent:#355e9a;
  --login-coral:#b86462; --login-field:#ffffffb8;
  min-width:0; margin:0; color:var(--login-ink); background:var(--login-bg);
  background-image:radial-gradient(ellipse at 30% 35%,#c9dcff66,transparent 60%),radial-gradient(ellipse at 12% 90%,#edc6c544,transparent 42%);
}
html[data-tyrion-theme="dark"] .tyrion-login-page {
  --login-bg:#091625; --login-ink:#e9f1fc; --login-muted:#acbdd3;
  --login-card:#10263be8; --login-line:#365779; --login-accent:#6b9ee3;
  --login-coral:#e49b97; --login-field:#0b1d30;
  background-image:radial-gradient(ellipse at 30% 35%,#24436b60,transparent 62%),radial-gradient(ellipse at 12% 90%,#75424b22,transparent 42%);
}
.tyrion-login-page .tyrion-login-layout { position:relative; display:grid; grid-template-columns:minmax(0,1.92fr) minmax(330px,1fr); grid-template-rows:auto auto 1fr auto; column-gap:clamp(16px,2vw,42px); width:100%; max-width:1920px; min-height:100svh; margin:0 auto; padding:28px clamp(24px,2.8vw,54px) 18px; }
.tyrion-login-page .tyrion-login-brand { grid-column:1; grid-row:1; padding:0 0 8px 8px; }
.tyrion-login-page .tyrion-login-brand h1 { font-size:clamp(48px,4.6vw,80px); line-height:1; font-weight:600; letter-spacing:-3px; margin:0; color:var(--login-ink); }
.tyrion-login-page .tyrion-login-brand p { font-size:clamp(18px,1.8vw,28px); margin:7px 0 0; line-height:1.3; color:var(--login-accent); }
.tyrion-login-page .tyrion-login-brand:after { content:""; display:block; width:58px; height:4px; border-radius:4px; background:var(--login-coral); margin-top:13px; }
.tyrion-login-page .tyrion-login-access { grid-column:2; grid-row:1 / 4; display:flex; align-items:center; padding:84px 0 36px; min-width:0; }
.tyrion-login-page .login-form-wrap { width:100%; max-width:460px; margin:0 auto; padding:clamp(24px,2.3vw,42px); border:1px solid var(--login-line); border-radius:24px; background:var(--login-card); box-shadow:0 16px 45px #1e436f16,0 3px 8px #1e436f10; }
.tyrion-login-page .login-form-wrap > .tyrion-theme-control { position:absolute; top:23px; right:clamp(24px,2.8vw,54px); margin:0; }
.tyrion-login-page .tyrion-login-edition { font-size:11px; text-transform:uppercase; letter-spacing:1.3px; color:var(--login-accent); margin:0 0 22px; line-height:1.5; }
.tyrion-login-page #tyrion-login-heading { font-size:clamp(29px,2.6vw,43px); line-height:1.2; letter-spacing:-1.5px; font-weight:600; color:var(--login-ink); margin:0; }
.tyrion-login-page .login-form-wrap form { margin:32px 0 0; }
.tyrion-login-page .login-form-wrap label { display:block; font-size:15px; line-height:1.45; font-weight:500; color:var(--login-ink); margin:0 0 22px; }
.tyrion-login-page .login-form-wrap input { display:block; width:100%; min-height:50px; font-size:17px; border:1px solid var(--login-line); border-radius:10px; margin-top:9px; padding:10px 13px; background:var(--login-field); color:var(--login-ink); }
.tyrion-login-page .password-wrap input { padding-right:88px; }
.tyrion-login-page .password-wrap button { top:0; bottom:0; right:3px; min-width:80px; min-height:44px; font-size:11px; color:var(--login-accent); border-radius:8px; }
.tyrion-login-page .login-submit { display:flex; width:100%; min-height:55px; margin:28px 0 0; padding:13px 22px; justify-content:center; gap:16px; font-size:20px; font-weight:500; border-radius:12px; border:1px solid #284a7e; color:#fff; background:linear-gradient(165deg,#3d75bc,#234979); box-shadow:inset 0 1px 0 #ffffff38; }
.tyrion-login-page .login-submit span { font-size:26px; line-height:1; }
.tyrion-login-page .login-submit:hover { background:linear-gradient(165deg,#4785d0,#2a578f); }
.tyrion-login-page .login-submit:disabled { opacity:.65; cursor:wait; }
.tyrion-login-page .tyrion-login-description { margin:28px 0 0; border-top:1px solid var(--login-line); padding-top:22px; font-size:14px; line-height:1.7; color:var(--login-ink); }
.tyrion-login-page .tyrion-login-guest { margin:16px 0 0; font-size:11px; line-height:1.7; color:var(--login-muted); }
.tyrion-login-page #login-form [role="alert"] { background:#fce5e5; color:#94343e; padding:12px; border:1px solid #cc8f94; border-radius:8px; font-size:13px; }
.tyrion-login-page .tyrion-login-visual { grid-column:1; grid-row:3; min-width:0; width:100%; align-self:start; }
.tyrion-login-page .tyrion-login-illustration { margin:0; max-width:100%; min-width:0; border-radius:12px; }
.tyrion-login-page .tyrion-login-motion-controls { display:flex; justify-content:flex-end; align-items:center; gap:12px; padding:0 12px; min-height:44px; }
.tyrion-login-page [data-scene-pause] { background:transparent; border:1px solid var(--login-line); color:var(--login-muted); border-radius:20px; padding:8px 14px; min-height:40px; font:inherit; font-size:11px; }
.tyrion-login-page [data-scene-pause][hidden] { display:none; }
.tyrion-login-page .tyrion-login-pan-hint { display:none; }
.tyrion-login-page .tyrion-login-footer { grid-column:1 / -1; grid-row:4; padding:12px 8px 0; }
.tyrion-login-page .tyrion-rights { text-align:right; color:var(--login-muted); border:0; margin:0; padding:0; }
.tyrion-login-page .tyrion-rights p { font-size:11px; line-height:1.6; margin:4px 0; }
.tyrion-login-page .tyrion-rights .tyrion-rights-terms { max-width:860px; margin-left:auto; font-size:10px; }
.tyrion-login-page :is(input,button,figure):focus-visible { outline:3px solid var(--login-accent); outline-offset:4px; }
@media(min-width:1600px) { .tyrion-login-page .tyrion-login-visual { max-width:1080px; } }
.tyrion-login-page .tyrion-login-message { grid-column:1; grid-row:2; padding:6px 8px 14px; }
.tyrion-login-page .tyrion-login-message-title { margin:0; font-size:clamp(22px,2.1vw,32px); line-height:1.3; letter-spacing:-.7px; font-weight:600; color:var(--login-ink); }
.tyrion-login-page .tyrion-login-message-detail { margin:9px 0 0; font-size:clamp(14px,1.15vw,18px); line-height:1.65; color:var(--login-muted); }
@media(max-width:850px) {
  .tyrion-login-page .tyrion-login-layout { grid-template-columns:minmax(0,1fr); grid-template-rows:repeat(7,auto); align-content:start; padding:12px 14px 18px; gap:12px; }
  .tyrion-login-page .tyrion-login-brand { grid-row:1; padding:6px 0; }
  .tyrion-login-page .tyrion-login-brand h1 { font-size:25px; letter-spacing:-1px; }
  .tyrion-login-page .tyrion-login-brand:after { display:none; }
  .tyrion-login-page .tyrion-login-access,
  .tyrion-login-page .login-form-wrap { display:contents; }
  .tyrion-login-page .login-form-wrap > .tyrion-theme-control { top:10px; right:14px; margin:0; gap:6px; }
  .tyrion-login-page .tyrion-theme-label { font-size:10px; }
  .tyrion-login-page .tyrion-login-edition { display:none; }
  .tyrion-login-page #tyrion-login-heading { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  .tyrion-login-page #login-form { grid-column:1; grid-row:2; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; align-items:end; gap:8px; margin:0; padding:0; }
  .tyrion-login-page .login-form-wrap label { min-width:0; margin:0; font-size:11px; }
  .tyrion-login-page .login-form-wrap input { min-width:0; min-height:44px; margin-top:4px; padding:9px 10px; font-size:16px; border-radius:9px; }
  .tyrion-login-page .password-wrap input { padding-right:34px; }
  .tyrion-login-page .password-wrap button { right:1px; min-width:32px; width:32px; min-height:44px; font-size:0; }
  .tyrion-login-page .password-wrap button:before { content:""; position:absolute; width:16px; height:10px; border:1.5px solid currentColor; border-radius:70% 20%; transform:rotate(45deg); left:8px; top:16px; }
  .tyrion-login-page .password-wrap button:after { content:""; position:absolute; width:4px; height:4px; border-radius:50%; background:currentColor; left:14px; top:20px; }
  .tyrion-login-page .login-submit { grid-column:3; grid-row:1; width:auto; min-height:44px; margin:0; padding:10px; font-size:12px; border-radius:9px; gap:0; }
  .tyrion-login-page .login-submit span { display:none; }
  .tyrion-login-page #login-form [role="alert"] { grid-column:1 / -1; grid-row:2; margin:0; }
  .tyrion-login-page .tyrion-login-message { grid-column:1; grid-row:3; padding:3px 0 0; }
  .tyrion-login-page .tyrion-login-message-title { font-size:16px; letter-spacing:-.3px; }
  .tyrion-login-page .tyrion-login-message-detail { margin-top:5px; font-size:12px; line-height:1.6; }
  .tyrion-login-page .tyrion-login-visual { grid-column:1; grid-row:4; }
  .tyrion-login-page .tyrion-login-description { grid-column:1; grid-row:5; margin:0; padding-top:12px; font-size:12px; }
  .tyrion-login-page .tyrion-login-guest { grid-column:1; grid-row:6; font-size:11px; margin:0; }
  .tyrion-login-page .tyrion-login-motion-controls { flex-wrap:wrap; justify-content:space-between; padding:6px 0; }
  .tyrion-login-page .tyrion-login-pan-hint { display:block; font-size:11px; color:var(--login-muted); margin:0; }
  .tyrion-login-page .tyrion-login-footer { grid-column:1; grid-row:7; padding:0; }
  .tyrion-login-page .tyrion-rights { text-align:left; }
}
@media(prefers-reduced-motion:reduce) {
  .tyrion-login-page *, .tyrion-login-page *:before, .tyrion-login-page *:after { animation:none!important; transition:none!important; }
}

/* The original logo, including the hand's stem, stays inside its image box. */
.tyrion-login-page .tyrion-login-brand h1{display:inline-block;font-size:0;line-height:0;max-width:100%}
.tyrion-login-page .tyrion-login-brand .tyrion-logo{width:clamp(240px,25vw,410px);max-width:calc(100% - 28px);padding:8px 14px;border-radius:14px}
@media(max-width:850px){
 .tyrion-login-page .tyrion-login-brand{padding:0;padding-right:152px}
 .tyrion-login-page .tyrion-login-brand .tyrion-logo{width:140px;max-width:calc(100% - 16px);padding:5px 8px;border-radius:8px}
}

.tyrion-login-page {
  --scene-ink: #193858;
  --scene-muted: #93afd1;
  --scene-blue: #3f83d3;
  --scene-coral: #cc8679;
  --scene-white: #ffffff;
  --scene-ice: #f7fbff;
  --scene-pale-blue: #dbe8fc;
  --scene-card: #dce9fb;
  --scene-side-light: #d3e1f7;
  --scene-side-dark: #9fb8db;
  --scene-port: #f7fcff;
  --scene-rim: #fff;
}

html[data-tyrion-theme='dark'] .tyrion-login-page {
  --scene-ink: #e4eefb;
  --scene-muted: #7594bb;
  --scene-blue: #72b3ff;
  --scene-coral: #ebaa9a;
  --scene-white: #3d506c;
  --scene-ice: #2a3e5b;
  --scene-pale-blue: #263b59;
  --scene-card: #334d70;
  --scene-side-light: #344e70;
  --scene-side-dark: #1a2c44;
  --scene-port: #192c45;
  --scene-rim: #728daf;
}

.tyrion-login-page .tyrion-login-illustration {
  margin: 0;
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: thin;
  scrollbar-color: #8faace transparent;
  overscroll-behavior-x: contain;
}

.tyrion-login-page #tyrion-login-scene {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
  isolation: isolate;
  font-family: Inter, 'Segoe UI', Arial, sans-serif;
  animation: tyrion-scene-appear 700ms ease-out both;
}

@keyframes tyrion-scene-appear {
  from { opacity: 0; }
  to { opacity: 1; }
}

.tyrion-login-page .scene-stop-white { stop-color: var(--scene-white, #fff); }
.tyrion-login-page .scene-stop-ice { stop-color: var(--scene-ice, #f7fbff); }
.tyrion-login-page .scene-stop-blue { stop-color: var(--scene-pale-blue, #dbe8fc); }
.tyrion-login-page .scene-stop-card { stop-color: var(--scene-card, #dce9fb); }
.tyrion-login-page .scene-stop-side-light { stop-color: var(--scene-side-light, #d3e1f7); }
.tyrion-login-page .scene-stop-side-dark { stop-color: var(--scene-side-dark, #9fb8db); }
.tyrion-login-page .scene-platform { filter: url(#scene-surface-shadow); }
.tyrion-login-page .scene-platform-top,
.tyrion-login-page .scene-label rect,
.tyrion-login-page .scene-tool-ai rect { stroke: var(--scene-rim, #fff); }
.tyrion-login-page .scene-platform-rim {
  fill: none;
  stroke: var(--scene-white, #fff);
  stroke-width: 1.4;
  opacity: .8;
}
.tyrion-login-page .scene-object { filter: url(#scene-object-shadow); }
.tyrion-login-page .scene-object-ground { fill: #6b8db6; opacity: .2; }
.tyrion-login-page .scene-card-line {
  stroke: var(--scene-muted, #93afd1);
  stroke-width: 4.5;
  stroke-linecap: round;
}
.tyrion-login-page .scene-accent-line {
  stroke: var(--scene-blue, #3f83d3);
  stroke-width: 4.5;
  stroke-linecap: round;
}
.tyrion-login-page .scene-accent-fill { fill: var(--scene-blue, #3f83d3); }
.tyrion-login-page .scene-muted-fill { fill: var(--scene-muted, #93afd1); }
.tyrion-login-page .scene-port,
.tyrion-login-page .scene-route-waypoint {
  fill: var(--scene-port, #f7fcff);
  stroke: var(--scene-blue, #3f83d3);
  stroke-width: 1.8;
}
.tyrion-login-page .scene-route {
  fill: none;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: .74;
}
.tyrion-login-page .scene-route-blue { stroke: var(--scene-blue, #3f83d3); }
.tyrion-login-page .scene-route-coral { stroke: var(--scene-coral, #cc8679); }
.tyrion-login-page .scene-route[data-kind='tool'] { opacity: .72; stroke-width: 2; }
.tyrion-login-page .scene-label { filter: url(#scene-object-shadow); }
.tyrion-login-page .scene-layer-number {
  fill: var(--scene-ink, #193858);
  font-size: 28px;
  font-weight: 650;
  letter-spacing: -.7px;
}
.tyrion-login-page .scene-layer-name {
  fill: var(--scene-ink, #193858);
  font-size: 23px;
  font-weight: 600;
  letter-spacing: -.8px;
}
.tyrion-login-page .scene-label-divider {
  stroke: #88acd9;
  stroke-width: 1.3;
}
.tyrion-login-page .scene-tool { filter: url(#scene-object-shadow); }
.tyrion-login-page .scene-tool-ai text {
  fill: var(--scene-ink, #193858);
  font-size: 33px;
  font-weight: 650;
}
.tyrion-login-page .scene-tool-tracker text {
  fill: #653b3b;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: -.8px;
}
.tyrion-login-page .scene-tool-port {
  fill: var(--scene-port, #f7fcff);
  stroke: var(--scene-blue, #3f83d3);
  stroke-width: 2.2;
}
.tyrion-login-page .scene-tool-tracker .scene-tool-port,
.tyrion-login-page .scene-tracker-port { stroke: var(--scene-coral, #cc8679); }
.tyrion-login-page .scene-receiver-halo {
  fill: #77baff;
  stroke: #9dd3ff;
  stroke-width: 3;
  opacity: 0;
}
.tyrion-login-page .scene-receiving .scene-receiver-halo { opacity: .5; }
.tyrion-login-page .scene-receiving .scene-port { fill: #c0eaff; stroke: #fff; }
.tyrion-login-page .scene-receiving .scene-tool-port { fill: #b3dcff; stroke: #fff; }
.tyrion-login-page .scene-packet { color: #2884ef; pointer-events: none; }
.tyrion-login-page .scene-packet-coral { color: #e48c77; }
.tyrion-login-page .scene-packet-tail {
  fill: none;
  stroke: currentColor;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: .5;
}
.tyrion-login-page .scene-packet-tail-1 { stroke-width: 1.8; opacity: .28; }
.tyrion-login-page .scene-packet-tail-2 { stroke-width: 1; opacity: .12; }
.tyrion-login-page .scene-packet-light {
  fill: #f6fdff;
  stroke: currentColor;
  stroke-width: 1.7;
}
.tyrion-login-page #tyrion-login-scene[data-motion='paused'] .scene-receiver-halo { opacity: 0; }

@media (max-width: 700px) {
  .tyrion-login-page #tyrion-login-scene { min-width: 760px; }
}

@media (prefers-reduced-motion: reduce) {
  .tyrion-login-page #tyrion-login-scene { animation: none; }
  .tyrion-login-page .scene-packet { visibility: hidden; }
  .tyrion-login-page .scene-receiver-halo { display: none; }
}
