@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff) format("woff")}@font-face{font-family:"IBM Plex Serif";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-serif-latin-600-normal-DAxitmSu.woff2) format("woff2"),url(/assets/ibm-plex-serif-latin-600-normal-D3rpGdkS.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff) format("woff")}:root{--paper: #f7f5ef;--paper-deep: #ece8dd;--paper-raised: #fffdf7;--ink: #111827;--ink-soft: #334155;--slate: #64748b;--line: #d6d3ca;--line-strong: #9ca3af;--accent: #0f766e;--accent-dark: #115e59;--accent-pale: #dff1ec;--danger: #b42318;--danger-pale: #fee4e2;--success: #166534;--success-pale: #dcfce7;--font-ui: "IBM Plex Sans", "Noto Sans SC", "Microsoft YaHei", sans-serif;--font-editorial: "IBM Plex Serif", "Noto Serif SC", "Songti SC", serif;--font-mono: "JetBrains Mono", "Noto Sans Mono CJK SC", monospace;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--radius-sm: 10px;--radius-md: 16px;--shadow-paper: 0 18px 50px rgba(17, 24, 39, .11)}.base-button{min-height:2.85rem;padding:.75rem 1rem;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;border:1px solid transparent;border-radius:var(--radius-sm);font:600 .9rem var(--font-ui);cursor:pointer;transition:background .16s ease,border-color .16s ease,transform .16s ease}.base-button:hover:not(:disabled){transform:translateY(-1px)}.base-button:disabled{cursor:wait;opacity:.62}.base-button--primary{color:#fff;background:var(--accent)}.base-button--primary:hover:not(:disabled){background:var(--accent-dark)}.base-button--secondary{color:var(--ink);background:var(--paper-raised);border-color:var(--line)}.base-button--quiet{color:var(--accent);background:transparent;border-color:var(--line)}.base-button--danger{color:#fff;background:var(--danger)}.base-button__spinner,.base-spinner{width:1rem;height:1rem;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}.base-field{display:grid;gap:.5rem}.base-field__label{color:inherit;font-size:.82rem;font-weight:500;letter-spacing:.03em}.base-field input{width:100%;min-height:3rem;padding:.75rem .85rem;color:inherit;background:transparent;border:1px solid var(--line-strong);border-radius:var(--radius-sm);font:400 1rem var(--font-ui)}.base-field input:focus{outline:2px solid var(--accent);outline-offset:2px;border-color:transparent}.base-alert{margin:0;padding:.8rem .9rem;border-left:3px solid;border-radius:var(--radius-sm);font-size:.86rem;line-height:1.55}.base-alert--error{color:#7a271a;background:var(--danger-pale);border-color:var(--danger)}.base-alert--success{color:var(--success);background:var(--success-pale);border-color:var(--success)}.base-alert--info{color:var(--ink-soft);background:var(--accent-pale);border-color:var(--accent)}.base-card{padding:var(--space-6);background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-paper)}.app-loading{min-height:100vh;display:grid;place-content:center;gap:.8rem;justify-items:center;color:var(--slate);background:var(--paper)}.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:clamp(2rem,7vw,8rem);align-items:center;padding:clamp(2rem,7vw,7rem);color:var(--ink);background:linear-gradient(90deg,rgba(15,118,110,.08) 1px,transparent 1px) 0 0 / 72px 72px,var(--paper)}.auth-shell__story{max-width:760px;align-self:end;padding-bottom:7vh}.auth-shell__index,.auth-shell__eyebrow{color:var(--accent);font-size:.72rem;font-weight:600;letter-spacing:.17em;text-transform:uppercase}.auth-shell__story h1{max-width:9ch;margin:.8rem 0 1.3rem;font:600 clamp(3rem,7vw,6.5rem)/.96 var(--font-editorial)}.auth-shell__story>p:not(.auth-shell__index){max-width:58ch;color:var(--ink-soft);line-height:1.8}.auth-shell__story dl{display:flex;flex-wrap:wrap;gap:1px;margin:2.5rem 0 0;padding:1px;overflow:hidden;background:var(--line);border-radius:var(--radius-md)}.auth-shell__story dl div{min-width:145px;flex:1;padding:1rem;background:var(--paper)}.auth-shell__story dt{color:var(--slate);font-size:.72rem}.auth-shell__story dd{margin:.35rem 0 0;font-weight:600}.auth-shell__panel{position:relative;align-self:start;margin-top:7vh;padding:2.25rem;color:#f8fafc;background:var(--ink);border-top:6px solid var(--accent);border-radius:var(--radius-md);box-shadow:var(--shadow-paper)}.auth-shell__rule{position:absolute;width:40%;height:1px;top:2.65rem;right:-10%;background:var(--line)}.auth-shell__eyebrow{margin:0 0 2.3rem}.auth-form{display:grid;gap:1.2rem}.auth-links{display:flex;justify-content:space-between;gap:1rem;margin-top:1.35rem;font-size:.85rem}.auth-shell a{color:#8ed6cc;text-underline-offset:.25em}.auth-footnote{margin:1.4rem 0 0;color:#94a3b8;font-size:.85rem}.auth-primary-link{display:inline-flex;margin-top:1rem;padding:.8rem 1rem;color:#fff!important;background:var(--accent);border-radius:var(--radius-sm);text-decoration:none}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:820px){.auth-shell{grid-template-columns:1fr;gap:1.25rem;padding:1.25rem;align-items:start}.auth-shell__story{align-self:auto;padding:2rem 0 0}.auth-shell__story h1{font-size:clamp(2.7rem,14vw,4.8rem)}.auth-shell__story dl{display:none}.auth-shell__panel{align-self:auto;margin:0;padding:1.5rem}.auth-shell__rule{display:none}}:root{color:var(--ink);background:var(--paper);font:400 16px/1.5 var(--font-ui);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;min-width:320px;background:var(--paper)}button,input,textarea,select{font:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}#app{min-height:100vh}
