.tms-auth{max-width:480px;margin:var(--tms-space-16) auto;padding:0 var(--tms-page-padding)}.tms-auth__card{background:var(--tms-color-bg-secondary);border:var(--tms-border-heavy);border-radius:var(--tms-border-radius);box-shadow:var(--tms-shadow-card);padding:var(--tms-space-8)}.tms-auth__header{text-align:center;margin-bottom:var(--tms-space-8)}.tms-auth__title{font-family:var(--tms-font-display);font-size:var(--tms-text-lg);font-weight:700;margin-bottom:var(--tms-space-2)}.tms-auth__subtitle{font-family:var(--tms-font-mono);font-size:var(--tms-text-xs);color:var(--tms-color-text-muted);letter-spacing:var(--tms-tracking-wide);text-transform:uppercase}.tms-auth__form{display:flex;flex-direction:column;gap:var(--tms-space-5)}.tms-auth__field{display:flex;flex-direction:column;gap:var(--tms-space-2)}.tms-auth__label{font-family:var(--tms-font-mono);font-size:var(--tms-text-xs);font-weight:600;letter-spacing:var(--tms-tracking-wide);text-transform:uppercase;color:var(--tms-color-text-secondary)}.tms-auth__input{width:100%;padding:var(--tms-space-3) var(--tms-space-4);font-family:var(--tms-font-body);font-size:var(--tms-text-base);background:var(--tms-color-bg-primary);border:2px solid var(--tms-color-border);border-radius:var(--tms-border-radius);transition:border-color var(--tms-transition-base)}.tms-auth__input:focus{border-color:var(--tms-color-accent);outline:none}.tms-auth__submit{margin-top:var(--tms-space-4)}.tms-auth__forgot-link{font-family:var(--tms-font-mono);font-size:var(--tms-text-xs);color:var(--tms-color-accent);letter-spacing:var(--tms-tracking-wide);text-decoration:none}.tms-auth__error{background:var(--tms-color-hard-bg);color:var(--tms-color-hard);border:1px solid var(--tms-color-hard);border-radius:var(--tms-border-radius);padding:var(--tms-space-3) var(--tms-space-4);font-family:var(--tms-font-mono);font-size:var(--tms-text-sm);display:none}.tms-auth__error.tms-is-visible{display:block}.tms-auth__footer{text-align:center;margin-top:var(--tms-space-6);font-size:var(--tms-text-sm);color:var(--tms-color-text-secondary)}.tms-auth__footer a{color:var(--tms-color-accent);font-weight:600}.tms-role-badge{display:inline-flex;align-items:center;font-family:var(--tms-font-mono);font-size:10px;font-weight:700;letter-spacing:var(--tms-tracking-wide);text-transform:uppercase;padding:2px 8px;border:1px solid;border-radius:2px}.tms-role-badge--super_admin{color:#7c3aed;border-color:#7c3aed;background:#f5f3ff}.tms-role-badge--admin{color:#2563eb;border-color:#2563eb;background:#eff6ff}.tms-role-badge--contributor{color:var(--tms-color-accent);border-color:var(--tms-color-accent);background:#fff7ed}.tms-role-badge--member{color:#059669;border-color:#059669;background:#ecfdf5}.tms-account{max-width:760px;margin:var(--tms-space-12) auto;padding:0 var(--tms-page-padding)}.tms-account__header{display:flex;align-items:center;gap:var(--tms-space-4);margin-bottom:var(--tms-space-8)}.tms-account__avatar{width:64px;height:64px;border-radius:50%;background:var(--tms-color-bg-tertiary);border:var(--tms-border-heavy);display:flex;align-items:center;justify-content:center;font-family:var(--tms-font-display);font-size:var(--tms-text-lg);font-weight:700;color:var(--tms-color-accent)}.tms-account__info{flex:1}.tms-account__name{font-family:var(--tms-font-display);font-size:var(--tms-text-lg);font-weight:700}.tms-account__meta{font-family:var(--tms-font-mono);font-size:var(--tms-text-xs);color:var(--tms-color-text-muted);letter-spacing:var(--tms-tracking-wide)}.tms-account__section{background:var(--tms-color-bg-secondary);border:var(--tms-border-heavy);border-radius:var(--tms-border-radius);box-shadow:var(--tms-shadow-card);padding:var(--tms-space-6);margin-bottom:var(--tms-space-6)}.tms-account__section-title{font-family:var(--tms-font-display);font-size:var(--tms-text-base);font-weight:700;margin-bottom:var(--tms-space-4);padding-bottom:var(--tms-space-3);border-bottom:var(--tms-border-thin)}.tms-account__row{display:flex;align-items:center;justify-content:space-between;padding:var(--tms-space-3) 0;border-bottom:var(--tms-border-thin)}.tms-account__row:last-child{border-bottom:none}.tms-account__row-label{font-family:var(--tms-font-mono);font-size:var(--tms-text-xs);text-transform:uppercase;letter-spacing:var(--tms-tracking-wide);color:var(--tms-color-text-muted)}.tms-account__row-value{font-size:var(--tms-text-sm);font-weight:500}.tms-account__actions{display:flex;flex-wrap:wrap;gap:var(--tms-space-3);margin-top:var(--tms-space-6)}.tms-status-badge{display:inline-flex;font-family:var(--tms-font-mono);font-size:10px;font-weight:700;letter-spacing:var(--tms-tracking-wide);text-transform:uppercase;padding:2px 8px;border:1px solid;border-radius:2px}.tms-status-badge--active{color:#059669;border-color:#059669;background:#ecfdf5}.tms-status-badge--suspended{color:#dc2626;border-color:#dc2626;background:#fef2f2}.tms-status-badge--banned{color:#7c3aed;border-color:#7c3aed;background:#f5f3ff}.tms-auth__social{margin-bottom:var(--tms-space-6)}.tms-btn--social{display:flex;align-items:center;justify-content:center;gap:var(--tms-space-3);width:100%;padding:var(--tms-space-3) var(--tms-space-4);font-family:var(--tms-font-body);font-size:var(--tms-text-sm);font-weight:600;border:2px solid var(--tms-color-border);border-radius:var(--tms-border-radius);text-decoration:none;cursor:pointer;transition:background-color var(--tms-transition-base),border-color var(--tms-transition-base),transform var(--tms-transition-base),box-shadow var(--tms-transition-base);margin-bottom:var(--tms-space-3)}.tms-btn--social:last-of-type{margin-bottom:0}.tms-btn--social:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--tms-color-border-heavy)}.tms-btn--social:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--tms-color-border-heavy)}.tms-btn--google{background:#fff;color:#3c4043;border-color:#dadce0}.tms-btn--google:hover{background:#f8f9fa;border-color:#c4c7cc}.tms-btn--github{background:#24292f;color:#fff;border-color:#24292f}.tms-btn--github:hover{background:#32383f;border-color:#32383f}.tms-btn__icon{flex-shrink:0}.tms-btn--social-disabled{opacity:.45;cursor:not-allowed;pointer-events:none;position:relative}.tms-btn--social-disabled .tms-btn__icon{filter:grayscale(100%)}.tms-btn__badge{font-family:var(--tms-font-mono);font-size:9px;font-weight:700;letter-spacing:var(--tms-tracking-wide);text-transform:uppercase;background:var(--tms-color-bg-tertiary);color:var(--tms-color-text-muted);padding:1px 6px;border-radius:2px;border:1px solid var(--tms-color-border);margin-left:auto}.tms-auth__divider{display:flex;align-items:center;gap:var(--tms-space-3);margin:var(--tms-space-5) 0}.tms-auth__divider:before,.tms-auth__divider:after{content:"";flex:1;border-top:var(--tms-border-thin)}.tms-auth__divider span{font-family:var(--tms-font-mono);font-size:var(--tms-text-xs);color:var(--tms-color-text-muted);letter-spacing:var(--tms-tracking-wide);text-transform:uppercase}.tms-auth__2fa{display:flex;flex-direction:column;gap:var(--tms-space-5)}.tms-auth__2fa-title{font-family:var(--tms-font-display);font-size:var(--tms-text-base);font-weight:700;margin-bottom:var(--tms-space-2)}.tms-auth__2fa-desc{font-size:var(--tms-text-sm);color:var(--tms-color-text-secondary);line-height:var(--tms-leading-normal)}.tms-auth__input--code{font-family:var(--tms-font-mono);font-size:var(--tms-text-lg);letter-spacing:.3em;text-align:center}.tms-btn--sm{font-size:var(--tms-text-xs);padding:var(--tms-space-2) var(--tms-space-4)}.tms-btn--xs{font-size:10px;padding:var(--tms-space-1) var(--tms-space-3)}.tms-account__2fa{margin-top:var(--tms-space-4)}.tms-account__2fa-desc{font-size:var(--tms-text-sm);color:var(--tms-color-text-secondary);line-height:var(--tms-leading-normal);margin-bottom:var(--tms-space-4)}.tms-account__2fa-field{display:flex;align-items:center;gap:var(--tms-space-3);margin-top:var(--tms-space-3)}.tms-account__2fa-field .tms-auth__input--code{max-width:160px;flex-shrink:0}.tms-account__2fa-setup{margin-top:var(--tms-space-6);padding:var(--tms-space-5);background:var(--tms-color-bg-primary);border:var(--tms-border-thin);border-radius:var(--tms-border-radius)}.tms-account__2fa-step{display:flex;gap:var(--tms-space-3);align-items:flex-start;margin-bottom:var(--tms-space-4)}.tms-account__2fa-step-num{width:24px;height:24px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--tms-color-accent);color:#fff;font-family:var(--tms-font-mono);font-size:var(--tms-text-xs);font-weight:700;border-radius:50%}.tms-account__2fa-step strong{display:block;font-size:var(--tms-text-sm);margin-bottom:var(--tms-space-1)}.tms-account__2fa-step p{font-size:var(--tms-text-xs);color:var(--tms-color-text-muted)}.tms-account__2fa-key{display:flex;align-items:center;gap:var(--tms-space-3);padding:var(--tms-space-3) var(--tms-space-4);background:var(--tms-color-bg-tertiary);border:var(--tms-border-thin);border-radius:var(--tms-border-radius);margin-bottom:var(--tms-space-4);margin-left:36px}.tms-account__2fa-key code{font-family:var(--tms-font-mono);font-size:var(--tms-text-sm);font-weight:700;letter-spacing:.15em;word-break:break-all;flex:1}.tms-account__2fa-link{color:var(--tms-color-accent);font-size:var(--tms-text-xs);font-weight:600;text-decoration:underline}.tms-account__2fa-msg{display:none;margin-top:var(--tms-space-3);padding:var(--tms-space-3) var(--tms-space-4);font-family:var(--tms-font-mono);font-size:var(--tms-text-sm);border-radius:var(--tms-border-radius);border:1px solid}.tms-account__2fa-msg--success{color:#059669;border-color:#059669;background:#ecfdf5}.tms-account__2fa-msg--error{color:#dc2626;border-color:#dc2626;background:#fef2f2}.tms-account__tutorials-stats{display:flex;gap:var(--tms-space-4);margin-bottom:var(--tms-space-4)}.tms-account__tutorials-stat{font-family:var(--tms-font-mono);font-size:var(--tms-text-xs);color:var(--tms-color-text-muted);letter-spacing:var(--tms-tracking-wide)}.tms-account__tutorials-stat strong{color:var(--tms-color-text-primary);font-size:var(--tms-text-base)}.tms-account__tutorials-empty{font-family:var(--tms-font-mono);font-size:var(--tms-text-sm);color:var(--tms-color-text-muted);letter-spacing:var(--tms-tracking-wide);padding:var(--tms-space-4) 0}.tms-account__tutorials-list{display:flex;flex-direction:column;gap:var(--tms-space-3)}.tms-account__tutorial-card{display:flex;align-items:center;justify-content:space-between;gap:var(--tms-space-4);padding:var(--tms-space-3) var(--tms-space-4);background:var(--tms-color-bg-primary);border:2px solid var(--tms-color-border);border-radius:var(--tms-border-radius);text-decoration:none;transition:transform var(--tms-transition-base),box-shadow var(--tms-transition-base),border-color var(--tms-transition-base)}.tms-account__tutorial-card:hover{transform:translate(-2px,-2px);box-shadow:var(--tms-shadow-card-hover);border-color:var(--tms-color-border-heavy)}.tms-account__tutorial-card:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--tms-color-border-heavy)}.tms-account__tutorial-card-title{font-family:var(--tms-font-display);font-size:var(--tms-text-sm);font-weight:700;color:var(--tms-color-text-primary)}.tms-account__tutorial-card-meta{display:flex;gap:var(--tms-space-3);font-family:var(--tms-font-mono);font-size:var(--tms-text-xs);color:var(--tms-color-text-muted);letter-spacing:var(--tms-tracking-wide);flex-shrink:0}.tms-account__tutorials-loading{font-family:var(--tms-font-mono);font-size:var(--tms-text-sm);color:var(--tms-color-text-muted);letter-spacing:var(--tms-tracking-wide);padding:var(--tms-space-3) 0}@media(max-width:480px){.tms-account__tutorial-card{flex-direction:column;align-items:flex-start}}.tms-profile{max-width:760px;margin:var(--tms-space-12) auto;padding:0 var(--tms-page-padding)}.tms-profile__back-link{display:inline-block;font-family:var(--tms-font-mono);font-size:var(--tms-text-xs);color:var(--tms-color-text-muted);text-decoration:none;letter-spacing:var(--tms-tracking-wide);margin-bottom:var(--tms-space-4)}.tms-profile__back-link:hover{color:var(--tms-color-accent)}.tms-profile__header{display:flex;align-items:center;gap:var(--tms-space-5);margin-bottom:var(--tms-space-8)}.tms-profile__avatar{width:80px;height:80px;border-radius:50%;background:var(--tms-color-bg-inverse);color:var(--tms-color-text-inverse);border:var(--tms-border-heavy);display:flex;align-items:center;justify-content:center;font-family:var(--tms-font-display);font-size:var(--tms-text-2xl);font-weight:700;flex-shrink:0}.tms-profile__info{flex:1}.tms-profile__name{font-family:var(--tms-font-display);font-size:clamp(1.3rem,3vw,1.8rem);font-weight:700;margin-bottom:var(--tms-space-2)}.tms-profile__meta{display:flex;align-items:center;gap:var(--tms-space-3);font-family:var(--tms-font-mono);font-size:var(--tms-text-xs);color:var(--tms-color-text-muted);letter-spacing:var(--tms-tracking-wide)}.tms-profile__section{background:var(--tms-color-bg-secondary);border:var(--tms-border-heavy);border-radius:var(--tms-border-radius);box-shadow:var(--tms-shadow-card);padding:var(--tms-space-6);margin-bottom:var(--tms-space-6)}.tms-profile__section-title{font-family:var(--tms-font-display);font-size:var(--tms-text-base);font-weight:700;margin-bottom:var(--tms-space-4);padding-bottom:var(--tms-space-3);border-bottom:var(--tms-border-thin);display:flex;align-items:center;gap:var(--tms-space-3)}.tms-profile__count{font-family:var(--tms-font-mono);font-size:var(--tms-text-xs);color:var(--tms-color-text-muted);background:var(--tms-color-bg-tertiary);padding:1px 8px;border-radius:2px;border:1px solid var(--tms-color-border)}.tms-profile__bio{font-size:var(--tms-text-md);line-height:var(--tms-leading-relaxed);color:var(--tms-color-text-secondary)}.tms-profile__tutorials-list{display:flex;flex-direction:column;gap:var(--tms-space-3)}.tms-profile__empty{font-family:var(--tms-font-mono);font-size:var(--tms-text-sm);color:var(--tms-color-text-muted);letter-spacing:var(--tms-tracking-wide)}.tms-profile__avatar--image,.tms-account__avatar--image{object-fit:cover;border-radius:50%}.tms-profile__location{font-family:var(--tms-font-mono);font-size:var(--tms-text-xs);color:var(--tms-color-text-muted);letter-spacing:var(--tms-tracking-wide)}.tms-profile__social{display:flex;flex-wrap:wrap;gap:var(--tms-space-3);margin-bottom:var(--tms-space-6)}.tms-profile__social-link{display:inline-flex;align-items:center;gap:var(--tms-space-2);font-family:var(--tms-font-mono);font-size:var(--tms-text-xs);letter-spacing:var(--tms-tracking-wide);color:var(--tms-color-text-secondary);text-decoration:none;padding:var(--tms-space-1) var(--tms-space-3);border:1px solid var(--tms-color-border);border-radius:var(--tms-border-radius);transition:color var(--tms-transition-base),border-color var(--tms-transition-base)}.tms-profile__social-link:hover{color:var(--tms-color-accent);border-color:var(--tms-color-accent)}.tms-profile__social-link svg{width:14px;height:14px;flex-shrink:0}.tms-profile__skills{display:flex;flex-wrap:wrap;gap:var(--tms-space-2)}.tms-profile__skill-tag{font-family:var(--tms-font-mono);font-size:var(--tms-text-xs);letter-spacing:var(--tms-tracking-wide);text-transform:uppercase;padding:var(--tms-space-1) var(--tms-space-3);background:var(--tms-color-bg-secondary);color:var(--tms-color-accent);border:1px solid var(--tms-color-accent);border-radius:var(--tms-border-radius)}.tms-tutorial-card__author-link,.tms-tutorial-detail__author-link{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:border-color var(--tms-transition-base),color var(--tms-transition-base);cursor:pointer}.tms-tutorial-card__author-link:hover,.tms-tutorial-detail__author-link:hover{color:var(--tms-color-accent);border-bottom-color:var(--tms-color-accent)}.tms-tag-input{display:flex;flex-wrap:wrap;gap:var(--tms-space-2);padding:var(--tms-space-2) var(--tms-space-3);border:2px solid var(--tms-color-border);border-radius:var(--tms-border-radius);background:var(--tms-color-bg-primary);cursor:text;min-height:44px;transition:border-color var(--tms-transition-base)}.tms-tag-input:focus-within{border-color:var(--tms-color-accent)}.tms-tag-input__tag{display:inline-flex;align-items:center;gap:var(--tms-space-1);font-family:var(--tms-font-mono);font-size:var(--tms-text-xs);letter-spacing:var(--tms-tracking-wide);text-transform:uppercase;padding:2px 8px;background:var(--tms-color-bg-secondary);color:var(--tms-color-accent);border:1px solid var(--tms-color-accent);border-radius:2px}.tms-tag-input__remove{background:none;border:none;color:var(--tms-color-accent);font-size:14px;line-height:1;cursor:pointer;padding:0 2px}.tms-tag-input__field{border:none;outline:none;background:transparent;font-family:var(--tms-font-body);font-size:var(--tms-text-base);color:var(--tms-color-text-primary);flex:1;min-width:120px}.tms-account__avatar-upload{display:flex;align-items:center;gap:var(--tms-space-4)}.tms-account__avatar-preview{width:64px;height:64px;border-radius:50%;border:var(--tms-border-heavy);overflow:hidden;flex-shrink:0}.tms-account__avatar-preview img{width:100%;height:100%;object-fit:cover}.tms-price-badge{font-family:var(--tms-font-mono);font-size:var(--tms-text-xs);letter-spacing:var(--tms-tracking-wide);padding:1px 6px;border-radius:2px;display:inline-block;vertical-align:middle;margin-left:var(--tms-space-2)}.tms-price-badge--free{color:#059669;background:#ecfdf5;border:1px solid #059669}.tms-price-badge--paid{color:var(--tms-color-accent);background:var(--tms-color-bg-secondary);border:1px solid var(--tms-color-accent)}@media(max-width:480px){.tms-profile__header{flex-direction:column;text-align:center}.tms-profile__meta{justify-content:center;flex-wrap:wrap}.tms-profile__social{justify-content:center}}
