:root {
--tl-color-bg:        #FAFAF8;
--tl-color-surface:   #FFFFFF;
--tl-color-ink:       #1A1D1B;
--tl-color-muted:     #6B7069;
--tl-color-border:    #E4E1D9;
--tl-color-border-strong: #948C7C; --tl-color-accent:    #0B6E4F; --tl-color-accent-ink:#FFFFFF;
--tl-color-accent-soft: #E7F1EC;
--tl-color-danger:    #B3261E;
--tl-color-danger-soft: #FBEAE9;
--tl-font-display: Georgia, 'Iowan Old Style', 'Times New Roman', serif;
--tl-font-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
--tl-radius-sm: 3px;
--tl-radius-md: 6px;
--tl-space-1: 4px;
--tl-space-2: 8px;
--tl-space-3: 12px;
--tl-space-4: 16px;
--tl-space-5: 24px;
--tl-space-6: 32px;
--tl-space-7: 48px;
--tl-space-8: 64px;
} .techlist-app-main,
.techlist-auth,
.techlist-app {
font-family: var(--tl-font-body);
color: var(--tl-color-ink);
-webkit-font-smoothing: antialiased;
}
.techlist-app-main h1,
.techlist-app-main h2,
.techlist-app-main h3,
.techlist-auth h1,
.techlist-app h1,
.techlist-app h2 {
font-family: var(--tl-font-display);
font-weight: 600;
letter-spacing: -0.01em;
line-height: 1.15;
}
.techlist-app-main {
background: var(--tl-color-bg);
padding: var(--tl-space-8) var(--tl-space-4);
min-height: 60vh;
}
.techlist-btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: var(--tl-space-2);
padding: 10px 20px;
border-radius: var(--tl-radius-sm);
border: 1px solid var(--tl-color-border-strong);
background: var(--tl-color-surface);
color: var(--tl-color-ink);
font-family: var(--tl-font-body);
font-size: 14px;
font-weight: 600;
cursor: pointer;
transition: border-color 120ms ease, background 120ms ease;
}
.techlist-btn:hover {
border-color: var(--tl-color-ink);
}
.techlist-btn:focus-visible {
outline: 2px solid var(--tl-color-accent);
outline-offset: 2px;
}
.techlist-btn--primary {
background: var(--tl-color-accent);
border-color: var(--tl-color-accent);
color: var(--tl-color-accent-ink);
}
.techlist-btn--primary:hover {
background: #095A40;
border-color: #095A40;
}
.techlist-btn--ghost {
background: transparent;
border-color: transparent;
color: var(--tl-color-muted);
}
.techlist-btn--danger {
color: var(--tl-color-danger);
border-color: var(--tl-color-danger);
background: var(--tl-color-danger-soft);
}
.techlist-badge {
display: inline-flex;
align-items: center;
gap: 4px;
font-size: 11px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.04em;
padding: 3px 8px;
border-radius: var(--tl-radius-sm);
border: 1px solid var(--tl-color-border-strong);
color: var(--tl-color-muted);
}
.techlist-badge--verified {
color: var(--tl-color-accent);
border-color: var(--tl-color-accent);
background: var(--tl-color-accent-soft);
}
.techlist-badge--pending {
color: #8A6D1F;
border-color: #D8C079;
background: #FBF6E7;
}
.techlist-badge--rejected,
.techlist-badge--suspended {
color: var(--tl-color-danger);
border-color: var(--tl-color-danger);
background: var(--tl-color-danger-soft);
} .tl-form-error {
background: var(--tl-color-danger-soft);
color: var(--tl-color-danger);
border: 1px solid var(--tl-color-danger);
border-radius: var(--tl-radius-sm);
padding: var(--tl-space-3) var(--tl-space-4);
font-size: 13px;
line-height: 1.5;
margin-bottom: var(--tl-space-4);
}
.tl-form-error:focus {
outline: 2px solid var(--tl-color-danger);
outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
.techlist-app-main *,
.techlist-app * {
animation-duration: 0.001ms !important;
transition-duration: 0.001ms !important;
}
} .tl-sr-only {
position: absolute !important;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}.techlist-auth {
max-width: 420px;
margin: 0 auto;
}
.techlist-auth__card {
background: var(--tl-color-surface);
border: 1px solid var(--tl-color-border);
border-top: 3px solid var(--tl-color-accent);
border-radius: var(--tl-radius-md);
padding: var(--tl-space-6) var(--tl-space-5);
}
.techlist-auth__title {
font-size: 28px;
margin: 0 0 var(--tl-space-2);
}
.techlist-auth__subtitle {
color: var(--tl-color-muted);
font-size: 14px;
line-height: 1.5;
margin: 0 0 var(--tl-space-5);
}
.techlist-auth__error {
background: var(--tl-color-danger-soft);
color: var(--tl-color-danger);
border: 1px solid var(--tl-color-danger);
border-radius: var(--tl-radius-sm);
padding: var(--tl-space-3);
font-size: 13px;
margin-bottom: var(--tl-space-4);
}
.techlist-auth__form {
display: flex;
flex-direction: column;
gap: var(--tl-space-1);
}
.techlist-auth__form label {
font-size: 13px;
font-weight: 600;
margin-top: var(--tl-space-3);
}
.techlist-auth__form input[type="text"],
.techlist-auth__form input[type="email"],
.techlist-auth__form input[type="password"] {
font-family: var(--tl-font-body);
font-size: 15px;
padding: 10px 12px;
border: 1px solid var(--tl-color-border-strong);
border-radius: var(--tl-radius-sm);
background: var(--tl-color-surface);
color: var(--tl-color-ink);
}
.techlist-auth__form input:focus-visible {
outline: 2px solid var(--tl-color-accent);
outline-offset: 1px;
border-color: var(--tl-color-accent);
}
.techlist-auth__checkbox {
display: flex;
align-items: center;
gap: var(--tl-space-2);
font-size: 13px;
font-weight: 400;
margin-top: var(--tl-space-2);
}
.techlist-auth__hint {
font-size: 12px;
color: var(--tl-color-muted);
margin: 2px 0 0;
}
.techlist-auth__form .techlist-btn {
margin-top: var(--tl-space-5);
width: 100%;
}
.techlist-auth__footer {
text-align: center;
font-size: 13px;
color: var(--tl-color-muted);
margin: var(--tl-space-5) 0 0;
}
.techlist-auth__footer a {
color: var(--tl-color-accent);
font-weight: 600;
text-decoration: none;
}
.techlist-auth__footer a:hover {
text-decoration: underline;
}