@layer ktp{:root{--ktp-bg:#f3f4f6;--ktp-surface:#fff;--ktp-text:#111827;--ktp-text-muted:#4b5563;--ktp-border:#d1d5db;--ktp-accent:#2563eb;--ktp-accent-hover:#1d4ed8;--ktp-on-accent:#fff;--ktp-hover:#f9fafb;--ktp-error-bg:#fef2f2;--ktp-error-text:#991b1b;--ktp-success-bg:#f0fdf4;--ktp-success-text:#166534;--ktp-skeleton:#e5e7eb;--ktp-overlay:#00000080;--ktp-font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--ktp-radius:.375rem;--ktp-card-radius:.5rem;--ktp-border-width:1px;--ktp-card-border:var(--ktp-border-width) solid transparent;--ktp-card-shadow:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--ktp-control-shadow:0 1px 2px 0 #0000000d;--ktp-focus-ring:2px solid var(--ktp-accent);--ktp-title-weight:700;--ktp-label-weight:500;--ktp-control-weight:500}}@keyframes ktp-spin{to{transform:rotate(360deg)}}@keyframes ktp-pulse{0%,to{opacity:1}50%{opacity:.5}}.ktp-page,.ktp-page *,.ktp-page :before,.ktp-page :after,.ktp-loading-overlay,.ktp-loading-overlay *{box-sizing:border-box}.ktp-page{min-height:100dvh;font-family:var(--ktp-font);color:var(--ktp-text);background-color:var(--ktp-bg);flex-direction:column;justify-content:center;align-items:center;padding:1rem;font-size:1rem;line-height:1.5;display:flex}.ktp-card,.ktp-card-form,.ktp-loading-card{color:var(--ktp-text);background-color:var(--ktp-surface);border:var(--ktp-card-border);border-radius:var(--ktp-card-radius);box-shadow:var(--ktp-card-shadow);padding:2rem}.ktp-card,.ktp-card-form{width:100%;max-width:28rem}.ktp-card{text-align:center}.ktp-loading-card{padding:1.5rem}.ktp-content{width:100%;max-width:28rem;margin-left:auto;margin-right:auto}.ktp-title,.ktp-title-sm{font-size:1.875rem;line-height:1.2;font-weight:var(--ktp-title-weight);color:var(--ktp-text);margin:0}.ktp-title{margin-bottom:1rem}.ktp-title-sm{margin-bottom:.5rem}.ktp-subtitle{color:var(--ktp-text-muted);margin:0 0 2rem;font-size:1.125rem}.ktp-text{color:var(--ktp-text-muted)}.ktp-text-center{text-align:center;margin-bottom:2rem}.ktp-space-y-3>*+*{margin-top:.75rem}.ktp-space-y-4>*+*,.ktp-mt-4{margin-top:1rem}.ktp-mt-6{margin-top:1.5rem}.ktp-label{font-size:.875rem;font-weight:var(--ktp-label-weight);color:var(--ktp-text);margin-bottom:.25rem;display:block}.ktp-input{width:100%;font:inherit;color:var(--ktp-text);background-color:var(--ktp-surface);border:var(--ktp-border-width) solid var(--ktp-border);border-radius:var(--ktp-radius);box-sizing:border-box;padding:.5rem .75rem}.ktp-input:focus-visible{outline:var(--ktp-focus-ring);outline-offset:-1px;border-color:var(--ktp-accent)}.ktp-btn-primary,.ktp-btn-oauth{width:100%;min-height:2.75rem;font:inherit;font-size:.875rem;font-weight:var(--ktp-control-weight);border-radius:var(--ktp-radius);box-shadow:var(--ktp-control-shadow);cursor:pointer;justify-content:center;align-items:center;padding:.5rem 1rem;transition:background-color .2s;display:flex;position:relative}.ktp-btn-primary:focus-visible,.ktp-btn-oauth:focus-visible,.ktp-link:focus-visible{outline:var(--ktp-focus-ring);outline-offset:2px}.ktp-btn-primary:disabled,.ktp-btn-oauth:disabled{opacity:.5;cursor:not-allowed}.ktp-btn-primary{color:var(--ktp-on-accent);background-color:var(--ktp-accent);border:var(--ktp-border-width) solid var(--ktp-accent)}.ktp-btn-primary:hover{background-color:var(--ktp-accent-hover);border-color:var(--ktp-accent-hover)}.ktp-btn-oauth{color:var(--ktp-text);background-color:var(--ktp-surface);border:var(--ktp-border-width) solid var(--ktp-border);padding-inline:2.75rem}.ktp-btn-oauth:hover{background-color:var(--ktp-hover)}.ktp-btn-icon{width:1.25rem;height:1.25rem;position:absolute;left:1rem}.ktp-link{font-weight:var(--ktp-control-weight);color:var(--ktp-accent);text-decoration:none}.ktp-link:hover{color:var(--ktp-accent-hover)}.ktp-links{text-align:center;font-size:.875rem}.ktp-links>*+*{margin-top:.5rem}.ktp-divider{color:var(--ktp-text-muted);align-items:center;gap:.5rem;margin:1rem 0;font-size:.875rem;display:flex}.ktp-divider:before,.ktp-divider:after{content:"";border-top:var(--ktp-border-width) solid var(--ktp-border);flex:1}.ktp-error,.ktp-success{border-radius:var(--ktp-radius);padding:1rem;font-size:.875rem}.ktp-error{color:var(--ktp-error-text);background-color:var(--ktp-error-bg)}.ktp-success{color:var(--ktp-success-text);background-color:var(--ktp-success-bg)}.ktp-loading-overlay{font-family:var(--ktp-font);background-color:var(--ktp-overlay);z-index:50;justify-content:center;align-items:center;line-height:1.5;display:flex;position:fixed;inset:0}.ktp-loading-content{flex-direction:column;align-items:center;display:flex}.ktp-loading-content>*+*{margin-top:1rem}.ktp-spinner{border:4px solid var(--ktp-accent);border-top-color:#0000;border-radius:9999px;width:3rem;height:3rem;animation:1s linear infinite ktp-spin}.ktp-loading-text{color:var(--ktp-text);font-weight:var(--ktp-control-weight)}.ktp-skeleton{animation:2s infinite ktp-pulse}.ktp-skeleton-title,.ktp-skeleton-text{background-color:var(--ktp-skeleton);border-radius:var(--ktp-radius)}@media (width<=30rem){.ktp-card,.ktp-card-form{padding:1.25rem}}.ktp-skeleton-title{height:2rem;margin-bottom:1rem}.ktp-skeleton-text{height:1rem;margin-bottom:2rem}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;overflow-x:hidden}button,input{font:inherit}@media (prefers-reduced-motion:reduce){*,:before,:after{animation:none!important}}.notfound-shell{color:#e9e7f0;background:#0b0a10;place-items:center;min-height:100vh;padding:24px;font-family:system-ui,sans-serif;display:grid}.notfound-shell .notfound-notice{justify-items:start;gap:12px;max-width:460px;display:grid}.notfound-shell .notfound-notice h1{margin:0;font-size:1.6rem}.notfound-shell .notfound-notice p{opacity:.75;margin:0;line-height:1.5}.notfound-shell .notfound-notice a{color:#9ecbff}.result-shell{color:#e9e7f0;background:#0b0a10;place-items:center;min-height:100vh;padding:24px;font-family:system-ui,sans-serif;display:grid}.result-shell .result-loading{opacity:.7;margin:0}.result-shell .result-notice{justify-items:start;gap:12px;max-width:460px;display:grid}.result-shell .result-notice h1{margin:0;font-size:1.6rem}.result-shell .result-notice p{opacity:.75;margin:0;line-height:1.5}.result-shell .result-notice a{color:#9ecbff}.result-shell .result-notice button{color:#9ecbff;font:inherit;cursor:pointer;background:0 0;border:1px solid #9ecbff;border-radius:6px;padding:8px 14px}
