
 /* /style/buttonLoader.css */ 

.has-spinner.active .spinner,.spinner{opacity:1;width:auto}.spinner{display:inline-block;-webkit-transition:opacity .25s,width .25s;-moz-transition:opacity .25s,width .25s;-o-transition:opacity .25s,width .25s;transition:opacity .25s,width .25s}.has-spinner.active{cursor:progress}.has-spinner.btn.active .spinner{min-width:20px}

 /* /style/components.css */ 

.tch-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:'Inter',Arial,sans-serif;font-size:15px;font-weight:600;line-height:1;padding:12px 22px;border-radius:var(--tch-radius);border:1px solid transparent;cursor:pointer;text-decoration:none;white-space:nowrap;user-select:none;transition:background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease;}.tch-btn:focus-visible{outline:3px solid var(--tch-focus-ring);outline-offset:2px;}.tch-btn--primary{background:var(--tch-brand);color:#fff;}.tch-btn--primary:hover{background:var(--tch-brand-dark);color:#fff;}.tch-btn--secondary{background:var(--tch-surface);color:var(--tch-ink);border-color:var(--tch-line);box-shadow:var(--tch-shadow-sm);}.tch-btn--secondary:hover{background:var(--tch-hover-bg);border-color:var(--tch-brand);color:var(--tch-brand-dark);}.tch-btn--ghost{background:transparent;color:var(--tch-brand-dark);}.tch-btn--ghost:hover{background:var(--tch-hover-bg);}.tch-btn--danger{background:#b3261e;color:#fff;}.tch-btn--danger:hover{background:#8c1d17;color:#fff;}.tch-btn--sm{font-size:13px;padding:8px 14px;border-radius:var(--tch-radius-sm);}.tch-btn--lg{font-size:17px;padding:15px 30px;border-radius:var(--tch-radius-lg);}.tch-btn--block{display:flex;width:100%;}.tch-btn[disabled],.tch-btn--loading{opacity:.55;pointer-events:none;}.tch-btn--loading::before{content:"";width:15px;height:15px;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;animation:tchSpin .7s linear infinite;}@keyframes tchSpin{to{transform:rotate(360deg);}}.tch-card{background:var(--tch-surface);border:1px solid var(--tch-line);border-radius:var(--tch-radius-lg);box-shadow:var(--tch-shadow-sm);padding:var(--tch-space-5);}.tch-card--hover{transition:box-shadow .18s ease,transform .18s ease;}.tch-card--hover:hover{box-shadow:var(--tch-shadow);transform:translateY(-2px);}.tch-card__title{font-family:'Playfair Display',Georgia,serif;font-size:20px;font-weight:600;color:var(--tch-ink);margin:0 0 var(--tch-space-3);}.tch-badge{display:inline-block;font-size:12px;font-weight:600;line-height:1;padding:5px 10px;border-radius:999px;background:var(--tch-hover-bg);color:var(--tch-brand-dark);}.tch-badge--brand{background:var(--tch-brand);color:#fff;}.tch-badge--ok{background:#e7f4e8;color:#1e6b2d;}.tch-badge--warn{background:#fdf3e0;color:#8a5a00;}.tch-badge--err{background:#fdeaea;color:#b3261e;}.tch-chip{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;padding:7px 14px;border-radius:999px;cursor:pointer;background:var(--tch-surface);color:var(--tch-ink);border:1px solid var(--tch-line);transition:background .15s ease,border-color .15s ease;}.tch-chip:hover,.tch-chip--active{background:var(--tch-hover-bg);border-color:var(--tch-brand);color:var(--tch-brand-dark);}.tch-field{display:block;margin-bottom:var(--tch-space-4);}.tch-field__label{display:block;font-size:13px;font-weight:600;color:var(--tch-ink-2);margin-bottom:var(--tch-space-1);}.tch-field__hint{font-size:12px;color:var(--tch-muted);margin-top:var(--tch-space-1);}.tch-field__error{font-size:12px;color:#b3261e;margin-top:var(--tch-space-1);}.tch-input,.tch-select,.tch-textarea{display:block;width:100%;box-sizing:border-box;font-family:'Inter',Arial,sans-serif;font-size:15px;color:var(--tch-ink);background:var(--tch-surface);border:1px solid var(--tch-line);border-radius:var(--tch-radius);padding:11px 14px;transition:border-color .15s ease,box-shadow .15s ease;}.tch-input:focus,.tch-select:focus,.tch-textarea:focus{border-color:var(--tch-brand);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--tch-brand) 20%,transparent);}.tch-input[aria-invalid="true"]{border-color:#b3261e;}.tch-textarea{min-height:110px;resize:vertical;}.tch-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--tch-line);border-radius:var(--tch-radius);}.tch-table{width:100%;border-collapse:collapse;font-size:14px;background:var(--tch-surface);}.tch-table th{text-align:left;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--tch-muted);background:var(--tch-surface-warm);padding:12px 16px;border-bottom:1px solid var(--tch-line);}.tch-table td{padding:14px 16px;border-bottom:1px solid var(--tch-line);color:var(--tch-ink);}.tch-table tr:last-child td{border-bottom:none;}.tch-table tr:hover td{background:var(--tch-hover-bg);}.tch-alert{display:flex;gap:10px;align-items:flex-start;border-radius:var(--tch-radius);padding:14px 16px;font-size:14px;line-height:1.5;border:1px solid var(--tch-line);background:var(--tch-surface-warm);color:var(--tch-ink);}.tch-alert--info{border-color:#bcd7ef;background:#eef6fd;color:#0b4a75;}.tch-alert--ok{border-color:#bfe3c4;background:#e7f4e8;color:#1e6b2d;}.tch-alert--warn{border-color:#f2ddb0;background:#fdf3e0;color:#8a5a00;}.tch-alert--err{border-color:#f3c1be;background:#fdeaea;color:#b3261e;}.tch-empty{text-align:center;padding:64px 24px;color:var(--tch-muted);}.tch-empty__icon{font-size:44px;margin-bottom:var(--tch-space-3);color:var(--tch-line);}.tch-empty__title{font-family:'Playfair Display',Georgia,serif;font-size:22px;color:var(--tch-ink);margin:0 0 var(--tch-space-2);}.tch-skeleton{background:linear-gradient(90deg,var(--tch-hover-bg) 25%,var(--tch-line) 50%,var(--tch-hover-bg) 75%);background-size:200% 100%;animation:tchShimmer 1.4s ease infinite;border-radius:var(--tch-radius-sm);}@keyframes tchShimmer{to{background-position:-200% 0;}}

 /* /style/login-register.css */ 

.AuthPage{background:var(--tch-surface-warm);padding:56px 16px 80px}.AuthTitle{font-family:'Playfair Display',Georgia,serif;font-size:34px;font-weight:600;color:var(--tch-ink);text-align:center;margin:0 0 var(--tch-space-6)}.AuthTitle:after{content:"";display:block;width:64px;height:3px;border-radius:2px;background:var(--tch-brand);margin:14px auto 0}.AuthPage .SignInForm{max-width:440px;margin:0 auto;text-align:center;padding:var(--tch-space-6)}.AuthPage #loginFieldTitle h3{font-family:'Playfair Display',Georgia,serif;font-size:22px;font-weight:600;color:var(--tch-ink);margin:0 0 var(--tch-space-3)}.AuthPage #loginFieldTitle span{display:inline-block;font-size:14px;color:var(--tch-muted);word-break:break-all;margin-bottom:var(--tch-space-1)}.AuthPage .FormRow{margin-bottom:var(--tch-space-4);text-align:left}.AuthPage .FormRow .FormRow:last-child{margin-bottom:0}.AuthPage .SignInForm label{display:block;text-align:left;font-size:13px;font-weight:600;color:var(--tch-ink-2);padding:0;margin:0 0 var(--tch-space-1)}.AuthPage .SignInForm input[type="text"],.AuthPage .SignInForm input[type="password"]{display:block;width:100%;box-sizing:border-box;font-family:'Inter',Arial,sans-serif;font-size:15px;color:var(--tch-ink);background:var(--tch-surface);border:1px solid var(--tch-line);border-radius:var(--tch-radius);padding:11px 14px;height:auto;transition:border-color .15s ease,box-shadow .15s ease}.AuthPage .SignInForm input[type="text"]:focus,.AuthPage .SignInForm input[type="password"]:focus{border-color:var(--tch-brand);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--tch-brand) 20%,transparent)}.AuthPage .SignInForm input::placeholder{color:var(--tch-muted);opacity:1}.AuthPage .tch-btn{margin-top:var(--tch-space-2)}.AuthPage .FormMsg{display:block;font-size:13px;font-weight:500;color:var(--tch-brand-dark);text-align:center;margin-top:var(--tch-space-2)}.AuthPage .loginFormLink,.AuthPage .ForgotResetLink,.AuthPage .guestPwdLink{font-size:14px;color:var(--tch-muted);margin:var(--tch-space-4) 0 0;line-height:1.6}.AuthPage .loginFormLink a,.AuthPage .ForgotResetLink a,.AuthPage .guestPwdLink a{color:var(--tch-brand-dark) !important;font-weight:600;cursor:pointer}.AuthPage .loginFormLink a:hover,.AuthPage .ForgotResetLink a:hover,.AuthPage .guestPwdLink a:hover{text-decoration:underline}.AuthPage #loginSeperator{color:var(--tch-muted)}.AuthPage #guestRM{color:var(--tch-brand-dark) !important}.AuthPage .ForgotPasswordBox{margin-top:var(--tch-space-4)}.AuthPage .SignInForm .formError{text-align:left}.AuthPage .SocialDivider{display:flex;align-items:center;gap:12px;margin:var(--tch-space-5) 0 var(--tch-space-4);color:var(--tch-muted);font-size:12px;font-weight:600;letter-spacing:.08em}.AuthPage .SocialDivider:before,.AuthPage .SocialDivider:after{content:"";flex:1;height:1px;background:var(--tch-line)}.AuthPage .SocialLogin{display:flex;flex-direction:column;gap:10px}.AuthPage .SocialLogin a{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;box-sizing:border-box;padding:11px 16px;border-radius:var(--tch-radius);border:1px solid var(--tch-line);font-family:'Inter',Arial,sans-serif;font-size:14px;font-weight:600;text-decoration:none;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease}.AuthPage .SocialLogin a i{font-size:19px}.AuthPage .SocialLogin a.fb{background:#1877f2;border-color:#1877f2;color:#fff}.AuthPage .SocialLogin a.fb:hover{background:#0b65da;border-color:#0b65da;color:#fff}.AuthPage .SocialLogin a.twitter{background:#55acee;border-color:#55acee;color:#fff}.AuthPage .SocialLogin a.twitter:hover{background:#2b94e4;border-color:#2b94e4;color:#fff}.AuthPage .SocialLogin a.Google{background:#fff;color:#3c4043}.AuthPage .SocialLogin a.Google:hover{background:#f7f7f7;border-color:#d0c4bb}.AuthPage .SocialLogin a.Google img{width:20px;height:20px}@media (max-width:480px){.AuthPage{padding:28px 12px 48px}.AuthTitle{font-size:26px;margin-bottom:var(--tch-space-5)}.AuthPage .SignInForm{padding:var(--tch-space-5)}}


