
:root{color-scheme:light dark;--bg:#ffffff;--fg:#1c1917;--muted:#57534e;--line:#d6d3d1;--field-line:#78716c;--field:#ffffff;--primary:#c2410c;--primary-fg:#fff;--accent:#f97316;--focus:#c2410c;--alert-bg:#fef2f2;--alert-fg:#991b1b;--ok-bg:#f0fdf4;--ok-fg:#166534;--sensitive-bg:#fff7ed;--sensitive-line:#c2410c;--font-text:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-title:var(--font-text);--title-case:none;--title-spacing:normal;--title-size:1.5rem;--control-h:44px;--radius:.5rem;--field-bw:1px;--alert-bw:0px;--alert-line:transparent;--secondary-line:var(--line);--ribbons:none;--ribbon-h:0px}
@media (prefers-color-scheme:dark){:root{--bg:#1c1917;--fg:#fafaf9;--muted:#d6d3d1;--line:#57534e;--field-line:#a8a29e;--field:#292524;--primary:#c2410c;--primary-fg:#fff;--accent:#fb923c;--focus:#fb923c;--alert-bg:#450a0a;--alert-fg:#fecaca;--ok-bg:#052e16;--ok-fg:#bbf7d0;--sensitive-bg:#431407;--sensitive-line:#fb923c}}
*{box-sizing:border-box}
html{font-family:var(--font-text);font-size:100%;line-height:1.5;background:var(--bg);color:var(--fg)}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;align-items:center}
body::before{content:"";align-self:stretch;height:var(--ribbon-h);background:var(--ribbons)}
header,main,footer{width:100%;max-width:420px;padding:0 1rem}
header{display:flex;align-items:center;gap:.5rem;padding-top:1.5rem;font-weight:700;font-size:1.125rem}
.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:.5rem;background:var(--accent);color:var(--accent-fg,#fff);border:var(--primary-bw,0) solid var(--primary-line,transparent);font-size:1rem}
.brand-logo{display:block;line-height:0}
.brand-logo img{display:block;height:auto;max-height:80px;max-width:min(240px,100%)}
@media (prefers-color-scheme:dark){.brand-logo{padding:.5rem .75rem;border-radius:.625rem;background:#ffffff}}
main{flex:1;padding-top:1rem;padding-bottom:2rem;overflow-wrap:break-word}
h1{font-family:var(--font-title);text-transform:var(--title-case);letter-spacing:var(--title-spacing);font-size:var(--title-size);line-height:1.25;margin:.5rem 0 .25rem;overflow-wrap:break-word;hyphens:none}
h1.long-title{text-transform:none;letter-spacing:normal}
.subtitle,.help{color:var(--muted)}
.subtitle{overflow-wrap:anywhere}
form{margin:1rem 0}
label{display:block;font-weight:600;margin-top:1rem}
input[type=email],input[type=password],input[type=text]{display:block;width:100%;min-height:var(--control-h);margin-top:.25rem;padding:.5rem .75rem;font:inherit;color:var(--fg);background:var(--field);border:var(--field-bw) solid var(--field-line);border-radius:var(--radius)}
button,.button{display:flex;align-items:center;justify-content:center;width:100%;min-height:var(--control-h);margin-top:1rem;padding:.5rem 1rem;font:inherit;font-weight:600;border-radius:var(--radius);border:var(--field-bw) solid var(--primary);cursor:pointer;text-decoration:none}
.primary{background:var(--primary);color:var(--primary-fg);border:var(--primary-bw,var(--field-bw)) solid var(--primary-line,var(--primary))}
.secondary{background:transparent;color:var(--fg);border-color:var(--secondary-line)}
.actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,8rem),1fr));gap:.75rem}
.actions form{margin:0}
a{color:inherit;text-decoration:underline;text-underline-offset:2px}
a:focus-visible,button:focus-visible,input:focus-visible,.button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.links{margin-top:1rem}
.alert{padding:.75rem 1rem;border-radius:.5rem;background:var(--alert-bg);color:var(--alert-fg);margin:1rem 0;border:var(--alert-bw) solid var(--alert-line)}
.notice{padding:.75rem 1rem;border-radius:.5rem;background:var(--ok-bg);color:var(--ok-fg);margin:1rem 0}
.app{display:flex;align-items:center;gap:.75rem;margin-top:1rem}
.app img{width:48px;height:48px;border-radius:.5rem;object-fit:cover}
ul.scopes{list-style:none;padding:0;margin:.5rem 0}
ul.scopes li{padding:.5rem .75rem;border:1px solid var(--line);border-radius:.5rem;margin-top:.5rem}
ul.scopes li.sensitive{border:2px solid var(--sensitive-line);background:var(--sensitive-bg);font-weight:700}
ul.scopes summary{cursor:pointer;list-style:none}
ul.scopes summary::-webkit-details-marker{display:none}
ul.scopes summary .more{color:var(--muted);font-weight:400;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}
.sensitive-note{margin:.5rem 0}
ul.scopes summary:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
ul.scopes ul.scope-detail{margin:.5rem 0 0;padding-left:1.25rem;list-style:disc;font-weight:400}
ul.scopes ul.scope-detail li{padding:0;border:0;margin:.25rem 0}
.badge{font-weight:700}
.captcha{margin-top:1rem}
input[readonly]{color:var(--muted)}
.field-error{color:var(--alert-fg);font-weight:600;margin:.25rem 0 0}
.notice-inline{font-weight:600;margin:.25rem 0 0}
[hidden]{display:none!important}
.fixed-field{margin:1rem 0 0}
.fixed-label{display:block;font-weight:600}
.fixed-value{display:block;margin-top:.25rem;overflow-wrap:anywhere}
details.choice{margin:1rem 0}
details.choice>summary{list-style:none}
details.choice>summary::-webkit-details-marker{display:none}
@media (max-width:20rem){h1{font-size:min(var(--title-size),1.25rem)}}
.error-summary{padding:.75rem 1rem;border-radius:.5rem;background:var(--alert-bg);color:var(--alert-fg);margin:1rem 0;border:var(--alert-bw) solid var(--alert-line)}
.error-summary ul{margin:.25rem 0 0;padding-left:1.25rem}
.check{display:flex;align-items:center;gap:.75rem;min-height:44px;margin-top:1rem}
.check input{width:1.5rem;height:1.5rem;margin:0;flex:none}
.check label{margin:0;font-weight:600}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
button.default-submit{position:absolute;width:1px;height:1px;min-height:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.partner-intro{margin:.75rem 0 1rem}
.partner-intro p{margin:0;font-size:.9375rem}
.partner-title{font-weight:700}
.partner-intro .intro-link{margin-top:.25rem}
.intro-link a{display:inline-flex;align-items:center;min-height:44px}
.account-block{border:1px solid var(--line);border-radius:.5rem;padding:.75rem 1rem;margin:1rem 0}
.account-block h2{font-size:1.125rem;margin:0 0 .25rem}
.account-block p{margin:.25rem 0}
footer{padding-bottom:1rem;color:var(--muted);font-size:.875rem;text-align:center}
footer p{margin:0}
footer a{display:inline-flex;align-items:center;min-height:44px}
h2{font-size:1.125rem;margin:1.5rem 0 .5rem}
.back-link{margin:.5rem 0 0}
.back-link a{display:inline-flex;align-items:center;min-height:44px}
ul.menu{list-style:none;padding:0;margin:1rem 0}
ul.menu li+li{margin-top:.5rem}
ul.menu a{display:grid;grid-template-columns:1fr auto;align-items:center;min-height:56px;padding:.5rem .75rem;border:1px solid var(--line);border-radius:.5rem;text-decoration:none}
.menu-title{font-weight:600;grid-column:1}
.menu-help{color:var(--muted);font-size:.875rem;grid-column:1}
.menu-arrow{grid-column:2;grid-row:1/span 2;font-size:1.5rem}
ul.menu a.danger-link{border:2px solid var(--alert-fg)}
.danger{background:var(--alert-bg);color:var(--alert-fg);border:2px solid var(--alert-fg)}
ul.app-list{list-style:none;padding:0;margin:1rem 0}
ul.app-list li{display:flex;gap:.75rem;align-items:flex-start;padding:.75rem 0;border-bottom:1px solid var(--line)}
ul.app-list p{margin:.125rem 0}
ul.app-list li>div{flex:1;min-width:0}
ul.app-list .app-name{font-weight:700;overflow-wrap:anywhere}
ul.app-list .button{margin-top:.5rem}
.app-logo{flex:none;width:40px;height:40px;border-radius:.5rem;object-fit:cover}
.app-initial{display:inline-flex;align-items:center;justify-content:center;background:var(--line);color:var(--fg);font-weight:700}
.meta{color:var(--muted)}
