.login-page[data-v-e486f266]{position:relative;display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 72px);padding:var(--eh-space-10) var(--eh-space-5);overflow:hidden;background-color:var(--eh-surface-page)}.login-page[data-v-e486f266]:before{display:none}.login-page[data-v-e486f266]:after{display:none}.login-layout[data-v-e486f266]{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:var(--eh-space-12);align-items:stretch;width:min(1040px,100%)}.login-layout[data-v-e486f266]:before{display:none}.login-layout[data-v-e486f266]:after{position:absolute;z-index:-1;right:26px;bottom:48px;width:156px;height:156px;border:1px solid color-mix(in srgb,var(--eh-color-sandy) 54%,var(--eh-border-subtle));border-radius:var(--eh-radius-lg);box-shadow:14px 14px color-mix(in srgb,var(--eh-color-pinky) 12%,var(--eh-color-white));content:""}.login-hero[data-v-e486f266]{position:relative;display:flex;min-height:480px;flex-direction:column;justify-content:center;padding:var(--eh-space-10) 0 var(--eh-space-10) var(--eh-space-8);overflow:hidden}.login-hero[data-v-e486f266]:before{position:absolute;top:var(--eh-space-10);bottom:var(--eh-space-10);left:0;width:5px;border-radius:999px;background:color-mix(in srgb,var(--eh-brand-accent) 78%,var(--eh-color-sandy));box-shadow:10px 0 color-mix(in srgb,var(--eh-color-sandy) 24%,transparent);content:""}.login-hero__eyebrow[data-v-e486f266]{display:inline-flex;width:fit-content;align-items:center;gap:var(--eh-space-3);margin:0 0 var(--eh-space-4);color:var(--eh-brand-accent);font-size:var(--eh-font-size-sm);font-weight:800;letter-spacing:0;text-transform:uppercase}.login-hero__eyebrow[data-v-e486f266]:after{display:block;width:76px;height:1px;background:color-mix(in srgb,var(--eh-brand-accent) 36%,var(--eh-color-sandy));content:""}.login-hero h1[data-v-e486f266]{max-width:520px;margin:0;color:var(--eh-text-primary);font-size:clamp(40px,4vw,58px);font-weight:800;line-height:1.06;text-wrap:balance}.login-hero__summary[data-v-e486f266]{max-width:480px;margin:var(--eh-space-5) 0 0;color:color-mix(in srgb,var(--eh-color-dark-grey) 72%,var(--eh-color-sandy));font-size:18px;line-height:1.8}.login-hero__summary[data-v-e486f266]:after{display:block;width:40px;height:4px;margin-top:var(--eh-space-8);border-radius:999px;background:color-mix(in srgb,var(--eh-color-sandy) 72%,var(--eh-color-white));box-shadow:52px 0 color-mix(in srgb,var(--eh-color-pinky) 42%,var(--eh-color-white)),104px 0 color-mix(in srgb,var(--eh-brand-accent) 18%,var(--eh-color-white));content:""}.login-panel[data-v-e486f266]{position:relative;isolation:isolate;width:min(420px,100%);align-self:center;padding:var(--eh-space-8);border:1px solid var(--eh-border-subtle);border-radius:var(--eh-radius-lg);background:var(--eh-color-white);box-shadow:14px 14px color-mix(in srgb,var(--eh-color-sandy) 20%,var(--eh-color-white)),14px 14px 0 1px color-mix(in srgb,var(--eh-color-sandy) 54%,var(--eh-border-subtle)),0 24px 56px color-mix(in srgb,var(--eh-color-dark-grey) 8%,transparent);overflow:visible}.login-panel[data-v-e486f266]:before{display:none}.login-panel[data-v-e486f266]:after{display:none}.login-panel__fold[data-v-e486f266]{position:absolute;z-index:3;top:-1px;right:-1px;width:66px;height:66px;overflow:hidden;border-top-right-radius:var(--eh-radius-lg);pointer-events:none}.login-panel__fold[data-v-e486f266]:before{position:absolute;top:0;right:0;width:64px;height:64px;border-top:1px solid color-mix(in srgb,var(--eh-color-sandy) 46%,var(--eh-border-subtle));border-right:1px solid color-mix(in srgb,var(--eh-color-sandy) 46%,var(--eh-border-subtle));background:color-mix(in srgb,var(--eh-color-sandy) 40%,var(--eh-color-white));clip-path:polygon(100% 0,0 0,100% 100%);box-shadow:-8px 8px 14px color-mix(in srgb,var(--eh-color-sandy) 22%,transparent);content:""}.login-panel__fold[data-v-e486f266]:after{display:none}.login-panel__eyebrow[data-v-e486f266]{position:relative;z-index:2;margin:0 0 var(--eh-space-2);color:var(--eh-text-muted);font-size:var(--eh-font-size-sm);font-weight:800}.login-panel h2[data-v-e486f266]{position:relative;z-index:2;margin:0 0 var(--eh-space-6);color:var(--eh-text-primary);font-size:30px;font-weight:800;line-height:var(--eh-line-height-tight)}.login-panel h2[data-v-e486f266]:before{display:none}.login-panel h2[data-v-e486f266]:after{display:block;width:42px;height:3px;margin-top:var(--eh-space-3);border-radius:999px;background:color-mix(in srgb,var(--eh-brand-accent) 72%,var(--eh-color-sandy));content:""}.login-panel .login-submit[data-v-e486f266]{width:100%}.login-form[data-v-e486f266]{display:grid;position:relative;z-index:1}.login-alert[data-v-e486f266]{margin-bottom:var(--eh-space-4)}@media(max-width:840px){.login-page[data-v-e486f266]{padding:var(--eh-space-6) var(--eh-space-4);background:var(--eh-surface-page)}.login-page[data-v-e486f266]:before{width:42vw}.login-page[data-v-e486f266]:after{display:none}.login-layout[data-v-e486f266]{grid-template-columns:1fr;gap:var(--eh-space-5)}.login-layout[data-v-e486f266]:before,.login-layout[data-v-e486f266]:after{display:none}.login-hero[data-v-e486f266]{min-height:auto;padding:var(--eh-space-4) 0 var(--eh-space-2) var(--eh-space-5)}.login-hero[data-v-e486f266]:before{top:var(--eh-space-4);bottom:var(--eh-space-2)}.login-hero h1[data-v-e486f266]{font-size:42px}.login-panel[data-v-e486f266]{width:100%}}:root{--eh-color-red: #fb0023;--eh-color-black: #000000;--eh-color-dark-grey: #212529;--eh-color-light-grey: #f0f0f0;--eh-color-white: #ffffff;--eh-color-dark-red-01: #a30002;--eh-color-dark-red-02: #210100;--eh-color-sandy: #eed9b1;--eh-color-purple: #7021f1;--eh-color-bluish: #006bd6;--eh-color-soft-purple: #698bff;--eh-color-green: #00ac4b;--eh-color-plum: #cf7ac6;--eh-color-pinky: #ffb0a2;--eh-color-orangy: #f0c643;--eh-text-primary: var(--eh-color-dark-grey);--eh-text-secondary: color-mix(in srgb, var(--eh-color-dark-grey) 74%, var(--eh-color-white));--eh-text-muted: color-mix(in srgb, var(--eh-color-dark-grey) 58%, var(--eh-color-white));--eh-text-inverse: var(--eh-color-white);--eh-surface-page: color-mix(in srgb, var(--eh-color-light-grey) 68%, var(--eh-color-white));--eh-surface-panel: var(--eh-color-white);--eh-surface-muted: var(--eh-color-light-grey);--eh-surface-brand-soft: color-mix(in srgb, var(--eh-color-red) 7%, var(--eh-color-white));--eh-surface-danger-soft: color-mix(in srgb, var(--eh-color-dark-red-01) 8%, var(--eh-color-white));--eh-surface-success-soft: color-mix(in srgb, var(--eh-color-green) 9%, var(--eh-color-white));--eh-surface-info-soft: color-mix(in srgb, var(--eh-color-bluish) 9%, var(--eh-color-white));--eh-surface-warning-soft: color-mix(in srgb, var(--eh-color-orangy) 18%, var(--eh-color-white));--eh-surface-selected: color-mix(in srgb, var(--eh-color-sandy) 42%, var(--eh-color-white));--eh-surface-learning: color-mix(in srgb, var(--eh-color-bluish) 10%, var(--eh-color-white));--eh-surface-booking: color-mix(in srgb, var(--eh-color-soft-purple) 12%, var(--eh-color-white));--eh-surface-card: color-mix(in srgb, var(--eh-color-green) 10%, var(--eh-color-white));--eh-surface-mall: color-mix(in srgb, var(--eh-color-purple) 9%, var(--eh-color-white));--eh-surface-notice: color-mix(in srgb, var(--eh-color-sandy) 55%, var(--eh-color-white));--eh-surface-offer: color-mix(in srgb, var(--eh-color-pinky) 28%, var(--eh-color-white));--eh-border-subtle: color-mix(in srgb, var(--eh-color-dark-grey) 13%, var(--eh-color-white));--eh-border-strong: color-mix(in srgb, var(--eh-color-dark-grey) 28%, var(--eh-color-white));--eh-brand-accent: var(--eh-color-red);--eh-brand-deep: var(--eh-color-dark-red-02);--eh-action-primary: var(--eh-color-dark-grey);--eh-action-primary-hover: var(--eh-color-black);--eh-action-primary-active: var(--eh-brand-deep);--eh-action-secondary: var(--eh-color-dark-grey);--eh-action-danger: var(--eh-color-dark-red-01);--eh-action-danger-hover: var(--eh-brand-deep);--eh-focus-ring: color-mix(in srgb, var(--eh-color-sandy) 74%, transparent);--eh-status-success: var(--eh-color-green);--eh-status-info: var(--eh-color-bluish);--eh-status-warning: var(--eh-color-orangy);--eh-status-danger: var(--eh-color-dark-red-01);--eh-accent-learning: var(--eh-color-bluish);--eh-accent-booking: var(--eh-color-soft-purple);--eh-accent-card: var(--eh-color-green);--eh-accent-mall: var(--eh-color-purple);--eh-accent-notice: var(--eh-color-orangy);--eh-accent-offer: var(--eh-color-pinky);--eh-accent-contract: var(--eh-color-sandy);--eh-radius-sm: 4px;--eh-radius-md: 6px;--eh-radius-lg: 8px;--eh-space-1: 4px;--eh-space-2: 8px;--eh-space-3: 12px;--eh-space-4: 16px;--eh-space-5: 20px;--eh-space-6: 24px;--eh-space-8: 32px;--eh-space-10: 40px;--eh-space-12: 48px;--eh-font-family: "Source Han Sans SC", "Noto Sans CJK SC", "Microsoft YaHei", Arial, sans-serif;--eh-font-size-xs: 12px;--eh-font-size-sm: 13px;--eh-font-size-md: 14px;--eh-font-size-lg: 16px;--eh-font-size-xl: 20px;--eh-font-size-2xl: 28px;--eh-font-size-3xl: 36px;--eh-line-height-tight: 1.25;--eh-line-height-normal: 1.6;--eh-shadow-panel: 0 10px 28px rgba(33, 37, 41, .06);--eh-shadow-overlay: 0 12px 32px rgba(33, 37, 41, .08)}*{box-sizing:border-box}:root{color:var(--eh-text-primary);background:var(--eh-surface-page);font-family:var(--eh-font-family)}body{margin:0;color:var(--eh-text-primary);background:var(--eh-surface-page);font-family:var(--eh-font-family);line-height:var(--eh-line-height-normal)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed}#app{min-height:100vh}.eyebrow{margin:0 0 var(--eh-space-2);color:var(--eh-text-muted);font-size:var(--eh-font-size-sm);font-weight:700;letter-spacing:0;text-transform:uppercase}.page-title{margin:0;color:var(--eh-text-primary);font-size:var(--eh-font-size-2xl);line-height:var(--eh-line-height-tight)}.muted-text{color:var(--eh-text-secondary)}.form-field{display:grid;gap:var(--eh-space-2);margin-bottom:var(--eh-space-4)}.form-field__label{color:var(--eh-text-primary);font-size:var(--eh-font-size-sm);font-weight:700}.form-actions{display:flex;flex-wrap:wrap;gap:var(--eh-space-3);align-items:center}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{min-height:100vh}.app-header{border-bottom:1px solid var(--eh-border-subtle);background:var(--eh-surface-panel)}.app-header__inner{display:flex;align-items:center;justify-content:space-between;width:min(1100px,100vw - 48px);min-height:72px;margin:0 auto;gap:var(--eh-space-5)}.app-header__actions{display:flex;flex:0 0 auto;gap:var(--eh-space-5);align-items:center;margin-left:auto;white-space:nowrap}.app-brand{display:inline-flex;flex:0 0 auto;gap:var(--eh-space-3);align-items:center;color:var(--eh-text-primary);text-decoration:none}.app-brand__mark{display:grid;width:38px;height:38px;place-items:center;border-radius:999px;background:var(--eh-brand-accent);color:var(--eh-text-inverse);font-size:24px;font-weight:800;line-height:1}.app-brand__copy{display:flex;gap:var(--eh-space-2);align-items:baseline;white-space:nowrap}.app-brand__copy strong{color:var(--eh-color-black);font-size:21px;font-weight:800;line-height:1}.app-brand__copy span{padding-left:var(--eh-space-2);border-left:1px solid var(--eh-border-subtle);color:var(--eh-text-muted);font-size:var(--eh-font-size-xs);font-weight:700;line-height:1}.app-nav{display:flex;flex:0 0 auto;flex-wrap:nowrap;gap:var(--eh-space-2);align-items:center}.app-nav a{display:inline-flex;flex:0 0 auto;min-width:72px;min-height:36px;align-items:center;justify-content:center;padding:8px var(--eh-space-3);border-radius:var(--eh-radius-md);color:var(--eh-text-secondary);font-weight:700;line-height:1;word-break:keep-all;white-space:nowrap;text-decoration:none;writing-mode:horizontal-tb}.app-nav a.router-link-active{background:var(--eh-surface-selected);color:var(--eh-text-primary)}.app-header__locale{width:116px}.page{width:min(1100px,100vw - 48px);margin:0 auto;padding:24px 0 48px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:var(--eh-space-4)}.page-heading h2{margin:0;padding-left:var(--eh-space-3);border-left:4px solid var(--eh-accent-mall)}.product-list{display:grid;gap:var(--eh-space-3)}.product-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--eh-space-5);align-items:center}.product-row h3{margin:0 0 6px;font-size:18px}.product-row p{color:var(--eh-text-secondary)}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--eh-space-5)}.mall-section{margin-bottom:var(--eh-space-5)}.price-block{display:grid;gap:var(--eh-space-2)}.price-block__pay{color:var(--eh-brand-accent);font-size:30px;font-weight:700}.price-block__meta{display:flex;flex-wrap:wrap;gap:10px;color:var(--eh-text-secondary)}.sku-selector{display:grid;gap:var(--eh-space-4)}.sku-selector__title{margin:0 0 8px;font-size:15px;font-weight:600}.sku-selector__values{display:flex;flex-wrap:wrap;gap:var(--eh-space-2)}.sku-selector .app-button--primary{border-color:color-mix(in srgb,var(--eh-color-dark-grey) 44%,var(--eh-color-sandy));background:color-mix(in srgb,var(--eh-color-sandy) 52%,var(--eh-color-white));color:var(--eh-text-primary)}.sku-selector .app-button--primary:hover{background:color-mix(in srgb,var(--eh-color-sandy) 66%,var(--eh-color-white))}.purchase-notice{display:grid;gap:var(--eh-space-3)}.purchase-notice .app-alert{border-color:var(--eh-accent-contract);border-left-color:var(--eh-accent-notice);background:var(--eh-surface-notice)}.submit-area{display:grid;gap:var(--eh-space-3)}.result-details{margin-top:var(--eh-space-5)}.card-tags{display:flex;flex-wrap:wrap;gap:var(--eh-space-2)}.contract-content{max-height:420px;margin:var(--eh-space-4) 0;padding:var(--eh-space-4);overflow:auto;white-space:pre-wrap;border:1px solid var(--eh-border-subtle);border-radius:var(--eh-radius-md);background:var(--eh-surface-page);line-height:1.7}@media(max-width:760px){.app-header__inner,.page{width:min(100vw - 28px,1100px)}.app-header__inner{flex-wrap:wrap;gap:12px;padding:12px 0}.app-header__actions{width:100%;justify-content:space-between;gap:var(--eh-space-3)}.app-nav{min-width:0;max-width:calc(100vw - 172px);overflow-x:auto}.detail-layout,.product-row{grid-template-columns:1fr}}.official-home{display:grid;min-height:calc(100vh - 65px);place-items:center;padding:var(--eh-space-12) var(--eh-space-5);background:var(--eh-surface-page)}.official-home__hero{width:min(860px,100%);padding-left:var(--eh-space-5);border-left:6px solid var(--eh-brand-accent)}.official-home__eyebrow{margin:0 0 var(--eh-space-3);color:var(--eh-brand-accent);font-size:var(--eh-font-size-md);font-weight:700;letter-spacing:0;text-transform:uppercase}.official-home h1{margin:0 0 18px;color:var(--eh-text-primary);font-size:56px;line-height:1.05;letter-spacing:0}.official-home p{max-width:620px;color:var(--eh-text-secondary);font-size:18px;line-height:1.8}.official-home__primary{display:inline-flex;align-items:center;min-height:44px;margin-top:var(--eh-space-3);padding:0 var(--eh-space-5);border-radius:var(--eh-radius-md);background:var(--eh-action-primary);color:var(--eh-text-inverse);font-weight:700}.student-shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:calc(100vh - 65px)}.student-shell__nav{display:flex;flex-direction:column;gap:var(--eh-space-2);padding:var(--eh-space-6);border-right:1px solid var(--eh-border-subtle);background:var(--eh-surface-panel)}.student-shell__nav a{--student-nav-accent: var(--eh-brand-accent);position:relative;padding:10px var(--eh-space-3);border-left:3px solid transparent;border-radius:var(--eh-radius-md);color:var(--eh-text-secondary);font-weight:600}.student-shell__nav a:hover{background:color-mix(in srgb,var(--student-nav-accent) 7%,var(--eh-color-white));color:var(--eh-text-primary)}.student-shell__nav a.router-link-active{border-left-color:var(--student-nav-accent);background:color-mix(in srgb,var(--student-nav-accent) 11%,var(--eh-color-white));color:var(--eh-text-primary)}.student-shell__nav-link--home{--student-nav-accent: var(--eh-brand-accent)}.student-shell__nav-link--plan{--student-nav-accent: var(--eh-accent-learning)}.student-shell__nav-link--bookings{--student-nav-accent: var(--eh-accent-booking)}.student-shell__nav-link--cards{--student-nav-accent: var(--eh-accent-card)}.student-shell__nav-link--mall{--student-nav-accent: var(--eh-accent-mall)}.student-shell__logout.app-button{justify-content:flex-start;width:100%;margin-top:auto;color:var(--eh-status-danger)}.student-shell__logout.app-button:hover{background:var(--eh-surface-danger-soft);color:var(--eh-status-danger)}.student-shell__content{min-width:0;padding:var(--eh-space-6)}.student-home{width:min(960px,100%)}.student-home__eyebrow{margin:0 0 var(--eh-space-2);color:var(--eh-brand-accent);font-size:var(--eh-font-size-sm);font-weight:700;letter-spacing:0;text-transform:uppercase}.student-home h1{margin:0 0 22px;font-size:32px}.student-home__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--eh-space-3)}.student-home__grid a{--student-home-accent: var(--eh-brand-accent);--student-home-surface: var(--eh-surface-brand-soft);display:flex;min-height:92px;align-items:flex-end;padding:var(--eh-space-4);border:1px solid var(--eh-border-subtle);border-top:4px solid var(--student-home-accent);border-radius:var(--eh-radius-md);background:var(--student-home-surface);color:var(--eh-text-primary);font-size:var(--eh-font-size-lg);font-weight:700}.student-home__grid a:hover{border-color:var(--student-home-accent);background:color-mix(in srgb,var(--student-home-accent) 14%,var(--eh-color-white))}.student-home__card--plan{--student-home-accent: var(--eh-accent-learning);--student-home-surface: var(--eh-surface-learning)}.student-home__card--bookings{--student-home-accent: var(--eh-accent-booking);--student-home-surface: var(--eh-surface-booking)}.student-home__card--cards{--student-home-accent: var(--eh-accent-card);--student-home-surface: var(--eh-surface-card)}.student-home__card--mall{--student-home-accent: var(--eh-accent-mall);--student-home-surface: var(--eh-surface-mall)}.student-page{width:min(1100px,100%)}.student-list{display:grid;gap:var(--eh-space-3)}.student-list__item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--eh-space-4);align-items:center;min-height:54px;padding:14px var(--eh-space-4);border:1px solid var(--eh-border-subtle);border-radius:var(--eh-radius-md);background:var(--eh-surface-panel);color:var(--eh-text-primary);font-weight:700}.student-list__meta{display:block;margin-top:var(--eh-space-1);color:var(--eh-text-muted);font-size:var(--eh-font-size-sm);font-weight:400}.student-list__actions{display:inline-flex;gap:var(--eh-space-2);align-items:center}.booking-message{margin-top:var(--eh-space-4)}@media(max-width:760px){.student-shell{grid-template-columns:1fr}.student-shell__nav{position:sticky;top:0;z-index:1;flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--eh-border-subtle)}.student-shell__content{padding:18px 14px 32px}.student-home__grid{grid-template-columns:1fr 1fr}.official-home h1{font-size:40px}.student-list__item{grid-template-columns:1fr}}.app-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--eh-space-2);min-height:40px;padding:0 var(--eh-space-4);border:1px solid transparent;border-radius:var(--eh-radius-md);font-weight:700;transition:background .16s ease,border-color .16s ease,color .16s ease}.app-button:focus-visible,.app-input:focus-visible,.app-select:focus-visible,.app-checkbox input:focus-visible{outline:2px solid var(--eh-focus-ring);outline-offset:2px}.app-button--primary{background:var(--eh-action-primary);color:var(--eh-text-inverse)}.app-button--primary:hover{background:var(--eh-action-primary-hover)}.app-button--secondary{border-color:var(--eh-border-subtle);background:var(--eh-surface-panel);color:var(--eh-text-primary)}.app-button--ghost{background:transparent;color:var(--eh-text-primary)}.app-button--danger{background:var(--eh-action-danger);color:var(--eh-text-inverse)}.app-button--danger:hover{background:var(--eh-action-danger-hover)}.app-button--small{min-height:32px;padding:0 var(--eh-space-3);font-size:var(--eh-font-size-sm)}.app-button__spinner{width:14px;height:14px;border:2px solid currentcolor;border-right-color:transparent;border-radius:999px;animation:app-spin .8s linear infinite}.app-card{padding:var(--eh-space-5);border:1px solid var(--eh-border-subtle);border-radius:var(--eh-radius-md);background:var(--eh-surface-panel)}.app-alert{padding:var(--eh-space-3) var(--eh-space-4);border:1px solid var(--eh-border-subtle);border-left:4px solid var(--eh-status-info);border-radius:var(--eh-radius-md);background:var(--eh-surface-info-soft)}.app-alert--error{border-color:var(--eh-status-danger);border-left-color:var(--eh-status-danger);background:var(--eh-surface-danger-soft)}.app-alert--success{border-color:var(--eh-status-success);border-left-color:var(--eh-status-success);background:var(--eh-surface-success-soft)}.app-alert--warning{border-color:var(--eh-status-warning);border-left-color:var(--eh-status-warning);background:var(--eh-surface-warning-soft)}.app-alert__title,.app-alert__message{margin:0}.app-alert__message{margin-top:var(--eh-space-1);color:var(--eh-text-secondary)}.app-tag{display:inline-flex;align-items:center;min-height:24px;padding:0 var(--eh-space-2);border:1px solid var(--eh-border-subtle);border-radius:var(--eh-radius-sm);background:var(--eh-surface-panel);color:var(--eh-text-secondary);font-size:var(--eh-font-size-xs);font-weight:700}.app-tag--success{border-color:var(--eh-status-success);background:var(--eh-surface-success-soft);color:var(--eh-status-success)}.app-tag--info{border-color:var(--eh-status-info);background:var(--eh-surface-info-soft);color:var(--eh-status-info)}.app-tag--warning{border-color:var(--eh-status-warning);background:var(--eh-surface-warning-soft);color:var(--eh-status-warning)}.app-tag--danger{border-color:var(--eh-status-danger);background:var(--eh-surface-danger-soft);color:var(--eh-status-danger)}.app-input,.app-select{width:100%;min-height:40px;padding:0 var(--eh-space-3);border:1px solid var(--eh-border-subtle);border-radius:var(--eh-radius-md);background:var(--eh-surface-panel);color:var(--eh-text-primary);transition:border-color .16s ease,background-color .16s ease,outline-color .16s ease}.app-input:focus-visible,.app-select:focus-visible{border-color:color-mix(in srgb,var(--eh-color-sandy) 70%,var(--eh-border-strong));background:color-mix(in srgb,var(--eh-color-sandy) 8%,var(--eh-color-white))}.app-checkbox{display:inline-flex;gap:var(--eh-space-2);align-items:center}.app-descriptions{display:grid;margin:0;overflow:hidden;border:1px solid var(--eh-border-subtle);border-radius:var(--eh-radius-md)}.app-descriptions__item{display:grid;grid-template-columns:160px minmax(0,1fr)}.app-descriptions dt,.app-descriptions dd{margin:0;padding:var(--eh-space-3);border-bottom:1px solid var(--eh-border-subtle)}.app-descriptions__item:last-child dt,.app-descriptions__item:last-child dd{border-bottom:0}.app-descriptions dt{background:var(--eh-surface-muted);color:var(--eh-text-secondary);font-weight:700}.app-tabs{display:flex;gap:var(--eh-space-2);border-bottom:1px solid var(--eh-border-subtle)}.app-tabs__tab{min-height:40px;padding:0 var(--eh-space-3);border:0;border-bottom:2px solid transparent;background:transparent;color:var(--eh-text-secondary);font-weight:700}.app-tabs__tab.is-active{border-bottom-color:var(--eh-brand-accent);color:var(--eh-text-primary)}.app-empty,.app-result{display:grid;place-items:center;min-height:180px;padding:var(--eh-space-8);text-align:center}.app-result{gap:var(--eh-space-3)}.app-result h1,.app-result p,.app-empty p{margin:0}.app-result__mark{width:36px;height:36px;border:6px solid var(--eh-status-info);border-radius:999px}.app-result--success .app-result__mark{border-color:var(--eh-status-success)}.app-result--warning .app-result__mark{border-color:var(--eh-status-warning)}.app-result--error .app-result__mark{border-color:var(--eh-status-danger)}.app-result__extra{display:flex;flex-wrap:wrap;gap:var(--eh-space-3);justify-content:center}.app-skeleton{display:grid;gap:var(--eh-space-3)}.app-skeleton__row{height:18px;border-radius:var(--eh-radius-sm);background:linear-gradient(90deg,var(--eh-surface-muted),var(--eh-surface-panel),var(--eh-surface-muted))}@keyframes app-spin{to{transform:rotate(360deg)}}
