@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:100 700;font-display:swap;src:url(/assets/ibm-plex-sans-var-Bvivom-9.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/ibm-plex-mono-400-B1IMc68O.woff2) format("woff2")}.xh-platform{min-height:100dvh;display:flex;flex-direction:column;color:var(--xh-text, #1c1c1a);background:radial-gradient(900px 420px at 0% -10%,rgba(47,93,74,.08),transparent 60%),var(--xh-bg, #f4f5f2);font-family:IBM Plex Sans,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}.xh-platform-header{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--xh-panel, #fff) 88%,transparent);border-bottom:1px solid var(--xh-line, #e3e5e0);-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4)}.xh-platform-bar,.xh-platform-main{width:min(960px,calc(100% - 2.5rem));margin:0 auto}.xh-platform-bar{display:flex;align-items:center;gap:1rem;min-height:56px}.xh-platform-nav{flex:1;min-width:0;display:flex;align-items:center;overflow-x:auto;scrollbar-width:none}.xh-platform-nav::-webkit-scrollbar{display:none}.xh-platform-brand{display:inline-flex;align-items:center;gap:.5rem;color:var(--xh-brand, #2f5d4a);font-weight:600;letter-spacing:-.03em;text-decoration:none;flex-shrink:0}.xh-portal{position:relative;flex-shrink:0}.xh-portal-trigger{width:2.05rem;height:2.05rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--xh-line, #e3e5e0);border-radius:10px;background:var(--xh-bg, #f4f5f2);color:var(--xh-text, #1c1c1a);cursor:pointer}.xh-portal-trigger:hover,.xh-portal-card:hover{background:var(--xh-accent-soft, rgba(47, 93, 74, .08))}.xh-portal-trigger:focus-visible,.xh-portal-card:focus-visible,.xh-portal-all:focus-visible{outline:2px solid var(--xh-accent, #2f5d4a);outline-offset:2px}.xh-portal-panel{position:absolute;top:calc(100% + .4rem);left:0;z-index:40;width:min(280px,80vw);padding:.45rem;background:var(--xh-panel, #fff);border:1px solid var(--xh-line, #e3e5e0);border-radius:var(--xh-radius, 12px);box-shadow:var(--xh-shadow, 0 12px 32px rgba(28, 28, 26, .12))}.xh-portal-list,.xh-portal-board{display:flex;flex-direction:column;gap:.25rem}.xh-portal-card{display:flex;align-items:center;gap:.7rem;padding:.55rem .6rem;border:1px solid transparent;border-radius:12px;background:transparent;color:inherit;text-decoration:none}.xh-portal-card[aria-current=page]{background:var(--xh-accent-soft, rgba(47, 93, 74, .08));border-color:transparent}.xh-portal-mark{width:2rem;height:2rem;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;background:var(--xh-accent, #2f5d4a);color:var(--xh-accent-fg, #f4f7f5);font-size:.85rem;font-weight:600}.xh-portal-copy{display:flex;flex-direction:column;gap:.1rem;min-width:0}.xh-portal-copy strong{font-size:.92rem;font-weight:600}.xh-portal-copy small{color:var(--xh-muted, #6d7068);font-size:.75rem;line-height:1.35}.xh-portal-all{display:block;margin:.2rem .15rem .15rem;padding:.45rem .6rem .35rem;border-top:1px solid var(--xh-line-soft, #eceeea);color:var(--xh-brand, #2f5d4a);font-size:.82rem;font-weight:600;text-decoration:none}.xh-portal-page h1{margin:0 0 .35rem;font-size:1.6rem;letter-spacing:-.03em}.xh-portal-page>p{margin:0 0 1.25rem;color:var(--xh-muted, #6d7068)}.xh-portal-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem}.xh-portal-board .xh-portal-card{align-items:flex-start;padding:1rem;border-color:var(--xh-line, #e3e5e0);background:var(--xh-panel, #fff)}.xh-portal-board .xh-portal-card[aria-current=page]{border-color:var(--xh-brand, #2f5d4a)}.xh-platform-account{margin-left:auto;flex-shrink:0}.account-menu{position:relative}.account-menu-trigger{display:inline-flex;align-items:center;gap:.45rem;padding:.2rem .45rem .2rem .2rem;border:1px solid var(--xh-line, #e3e5e0);border-radius:999px;background:var(--xh-bg, #f4f5f2);color:var(--xh-text, #1c1c1a);font-family:inherit;font-size:.8rem;font-weight:500;line-height:1;cursor:pointer}.account-menu-trigger:hover{background:var(--xh-accent-soft, rgba(47, 93, 74, .08))}.account-menu-trigger:focus-visible,.account-menu-link:focus-visible{outline:2px solid var(--xh-accent, #2f5d4a);outline-offset:2px}.account-menu-avatar{width:1.55rem;height:1.55rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--xh-accent, #2f5d4a);color:var(--xh-accent-fg, #f4f7f5);font-size:.7rem;font-weight:600}.account-menu-label{max-width:7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:.2rem}.account-menu-panel{position:absolute;top:calc(100% + .4rem);right:0;z-index:40;width:240px;padding:.55rem;background:var(--xh-panel, #fff);border:1px solid var(--xh-line, #e3e5e0);border-radius:var(--xh-radius, 12px);box-shadow:var(--xh-shadow, 0 12px 32px rgba(28, 28, 26, .12));display:flex;flex-direction:column;gap:.35rem}.account-menu-email{padding:.35rem .5rem .55rem;color:var(--xh-muted, #6d7068);font-size:.75rem;word-break:break-all;border-bottom:1px solid var(--xh-line-soft, #eceeea);margin-bottom:.15rem}.account-menu-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.25rem .4rem;font-size:.8rem;color:var(--xh-muted, #6d7068)}.account-menu-row select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--xh-bg, #f4f5f2);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2371717a' d='M3 4.5L6 8l3-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .35rem center;border:1px solid var(--xh-line, #e3e5e0);border-radius:7px;padding:.25rem 1.4rem .25rem .45rem;font:inherit;font-size:.75rem;color:var(--xh-text, #1c1c1a);cursor:pointer;max-width:7.5rem}.account-menu-link{display:block;width:100%;text-align:left;padding:.45rem .55rem;border:none;border-radius:7px;background:transparent;color:var(--xh-text, #1c1c1a);text-decoration:none;font-family:inherit;font-size:.8125rem;font-weight:500;cursor:pointer}.account-menu-link:hover{background:var(--xh-accent-soft, rgba(47, 93, 74, .08))}.account-menu-link.danger{color:var(--xh-err, #dc2626)}@media(max-width:640px){.account-menu-label{display:none}.account-menu-trigger{padding:.15rem}}.xh-platform-main{flex:1;padding:1.75rem 0 3rem}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:100 700;font-display:swap;src:url(/fonts/ibm-plex-sans-var.woff2) format("woff2");unicode-range:U+0000-00FF,U+0100-04FF,U+1E00-1EFF,U+2000-206F,U+2070-209F,U+20A0-20CF,U+2100-214F,U+2190-21FF,U+2200-22FF,U+FB00-FB06}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0100-04FF,U+1E00-1EFF,U+2000-206F,U+2070-209F,U+20A0-20CF,U+2100-214F,U+2190-21FF,U+2200-22FF,U+FB00-FB06}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500.woff2) format("woff2");unicode-range:U+0000-00FF,U+0100-04FF,U+1E00-1EFF,U+2000-206F,U+2070-209F,U+20A0-20CF,U+2100-214F,U+2190-21FF,U+2200-22FF,U+FB00-FB06}:root,html[data-theme=light]{--xh-bg: #f4f5f2;--xh-panel: #ffffff;--xh-elevated: #ffffff;--xh-line: #e3e5e0;--xh-line-soft: #eceeea;--xh-text: #1c1c1a;--xh-muted: #6d7068;--xh-faint: #9a9d94;--xh-brand: #2f5d4a;--xh-brand-bright: #3a7260;--xh-accent: var(--xh-brand);--xh-accent-fg: #f4f7f5;--xh-accent-soft: rgba(47, 93, 74, .08);--xh-accent-press: rgba(47, 93, 74, .16);--xh-accent-ring: rgba(47, 93, 74, .22);--xh-warn-bg: #fffbeb;--xh-warn-line: #d4a017;--xh-err: #dc2626;--xh-err-bg: #fef2f2;--xh-ok: #16a34a;--xh-ok-bg: #f0fdf4;--xh-orb: rgba(47, 93, 74, .1);--xh-orb-2: rgba(74, 125, 111, .08);--xh-shadow: 0 1px 2px rgba(28, 28, 26, .05), 0 12px 32px rgba(28, 28, 26, .07);--xh-shadow-lift: 0 2px 4px rgba(28, 28, 26, .05), 0 16px 40px rgba(28, 28, 26, .1);--xh-radius: 12px;--xh-radius-lg: 16px;--xh-font: "IBM Plex Sans", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--xh-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace}html[data-theme=dark]{--xh-bg: #101211;--xh-panel: #171917;--xh-elevated: #1c1e1c;--xh-line: #2a2d2a;--xh-line-soft: #222522;--xh-text: #eceeea;--xh-muted: #9ba094;--xh-faint: #6d7268;--xh-brand: #6fad90;--xh-brand-bright: #8cc3a8;--xh-accent: var(--xh-brand);--xh-accent-fg: #0e1612;--xh-accent-soft: rgba(111, 173, 144, .12);--xh-accent-press: rgba(111, 173, 144, .22);--xh-accent-ring: rgba(111, 173, 144, .3);--xh-warn-bg: #2a2416;--xh-warn-line: #a8841a;--xh-err: #f87171;--xh-err-bg: #3a1f1f;--xh-ok: #4ade80;--xh-ok-bg: #14221a;--xh-orb: rgba(111, 173, 144, .08);--xh-orb-2: rgba(111, 173, 144, .06);--xh-shadow: 0 14px 40px rgba(0, 0, 0, .45);--xh-shadow-lift: 0 16px 44px rgba(0, 0, 0, .55)}*{box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--xh-font);color:var(--xh-text);background:var(--xh-bg);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}::selection{background:var(--xh-accent-ring)}.brand-mark{display:block;flex-shrink:0}.brand-mark-bg{fill:var(--xh-brand)}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.auth-shell{min-height:100dvh;display:flex;flex-direction:column;background:radial-gradient(44rem 30rem at 88% -12%,var(--xh-orb),transparent 62%),radial-gradient(38rem 26rem at -12% 112%,var(--xh-orb-2),transparent 62%),var(--xh-bg)}.auth-shell-top{display:flex;justify-content:flex-end;padding:1rem 1.25rem}.auth-shell-main{flex:1;display:flex;align-items:center;justify-content:center;padding:1rem 1.25rem 3rem}.auth-panel{width:100%;max-width:400px;background:var(--xh-panel);border:1px solid var(--xh-line);border-radius:var(--xh-radius-lg);padding:2rem 1.75rem;box-shadow:var(--xh-shadow);animation:fade-up .35s ease both}.auth-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:1.1rem}.auth-brand{margin:0;font-size:1.5rem;font-weight:600;letter-spacing:-.02em;line-height:1.2}.auth-tagline{margin:0;color:var(--xh-muted);font-size:.85rem}.auth-title{margin:0 0 .7rem;font-size:1.15rem;font-weight:600}.app-shell{min-height:100dvh;display:flex;flex-direction:column;background:var(--xh-bg)}.app-header{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--xh-line);background:color-mix(in srgb,var(--xh-panel) 85%,transparent);-webkit-backdrop-filter:blur(16px) saturate(1.5);backdrop-filter:blur(16px) saturate(1.5)}.app-header-inner{display:flex;align-items:center;gap:1rem;flex-wrap:nowrap;width:100%;max-width:960px;margin:0 auto;padding:.55rem 1.25rem;min-height:52px}.app-brand{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:inherit;flex-shrink:0}.app-brand-name{font-weight:600;font-size:1.05rem;letter-spacing:-.02em}.app-brand-tag{color:var(--xh-muted);font-size:.8rem}.app-nav{display:flex;align-items:center;gap:.1rem;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.app-nav::-webkit-scrollbar{display:none}.app-nav a{flex-shrink:0;padding:.35rem .55rem;border-radius:7px;color:var(--xh-muted);text-decoration:none;font-size:.8125rem;white-space:nowrap;transition:background-color .15s ease,color .15s ease}.app-nav a:hover{background:var(--xh-accent-soft);color:var(--xh-text)}.app-nav a.active{background:var(--xh-accent-soft);color:var(--xh-accent);font-weight:600}.app-header-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto;flex-shrink:0}.app-main{flex:1;width:100%;max-width:960px;min-width:0;margin:0 auto;padding:1.75rem 1.25rem 3rem}.product-pick{border:none;margin:0;padding:0}.product-pick legend{padding:0;font-size:.875rem}.check-list{display:flex;flex-direction:column;gap:.35rem;margin-top:.35rem}.check-item{display:flex;align-items:center;gap:.55rem;padding:.45rem .55rem;border:1px solid var(--xh-line);border-radius:8px;background:var(--xh-bg);font-size:.875rem;cursor:pointer}.check-item input{accent-color:var(--xh-accent)}.key-row{display:flex;flex-direction:column;gap:.65rem}.key-row-actions{justify-content:flex-start}.page-header-split{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.page-header-split>.btn{flex-shrink:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.65rem}.panel-head .panel-title{margin:0}.panel-head .btn-link{margin-left:0}.panel-head-meta{display:inline-flex;align-items:center;gap:.85rem;flex-wrap:wrap}.compact-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem 1rem}.list li.compact-row{padding:.55rem 0}.compact-row .list-title{margin:0}.compact-row-main{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem .75rem;min-width:0;flex:1}.compact-row-actions{display:flex;align-items:center;gap:.2rem;flex-shrink:0}.device-dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--xh-faint);flex-shrink:0}.device-dot.is-online{background:var(--xh-ok)}.auto-renew{display:inline-flex;align-items:center;gap:.4rem;margin:0;font-size:.85rem;color:var(--xh-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.auto-renew input{accent-color:var(--xh-accent)}.prefs-bar{display:flex;gap:.4rem;align-items:center}.prefs-field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--xh-bg);border:1px solid var(--xh-line);border-radius:8px;padding:.3rem 1.6rem .3rem .55rem;font-size:.8rem;color:var(--xh-muted);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2371717a' d='M3 4.5L6 8l3-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .4rem center;cursor:pointer}.prefs-field select:hover{color:var(--xh-text);border-color:var(--xh-muted)}.prefs-field select:focus-visible{outline:2px solid var(--xh-accent);outline-offset:1px}.page{display:flex;flex-direction:column;gap:1.25rem;min-width:0;animation:fade-up .3s ease both}.page-header{margin-bottom:0}.page-header h1{margin:0 0 .3rem;font-size:1.55rem;font-weight:600;letter-spacing:-.025em}.page-header p{margin:0;color:var(--xh-muted);font-size:.95rem}.panel{background:var(--xh-panel);border:1px solid var(--xh-line);border-radius:var(--xh-radius-lg);padding:1.25rem 1.35rem;box-shadow:0 1px 2px #1c1c1a08;min-width:0;max-width:100%}.usage-cards{display:grid;gap:.5rem;margin-top:.85rem}.usage-card{display:grid;grid-template-columns:minmax(0,1fr) max-content;column-gap:.75rem;row-gap:.45rem;align-items:center;min-width:0;overflow:hidden;border:1px solid var(--xh-line);border-radius:10px;background:var(--xh-bg);padding:.75rem 1rem}.usage-card-label{min-width:0;font-size:.8rem;color:var(--xh-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.usage-card-value{justify-self:end;min-width:0;font-size:.95rem;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.2}.usage-card-value.is-included{font-weight:500}.usage-bar{grid-column:1 / -1;height:6px;border-radius:999px;background:var(--xh-line);overflow:hidden}.usage-bar>span{display:block;height:100%;background:var(--xh-text, #1c1c1a)}.usage-bar>span.is-hot{background:var(--xh-err)}.cred-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}.cred{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem 1rem;align-items:center;padding:.85rem .95rem;border:1px solid var(--xh-line);border-radius:12px;background:var(--xh-bg)}.cred-title{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem .5rem}.cred-title .list-title{margin:0}.cred-meta,.cred-use{margin-top:.2rem;color:var(--xh-muted);font-size:.82rem}.cred-use{color:var(--xh-faint)}.cred-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.15rem .35rem}.cred-actions .btn-link{margin-left:0}@media(max-width:640px){.cred{grid-template-columns:1fr}.cred-actions{justify-content:flex-start}}.admin-users-table-wrap{min-width:0;max-width:100%}@media(min-width:641px){.admin-users-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}}.admin-users-table{width:100%;border-collapse:collapse;font-size:.85rem}.admin-users-table th,.admin-users-table td{text-align:left;padding:.5rem .7rem;border-bottom:1px solid var(--xh-line);vertical-align:middle;white-space:nowrap}.admin-users-table th{font-weight:600;color:var(--xh-muted);font-size:.75rem;background:var(--xh-bg)}.admin-users-table tr.clickable{cursor:pointer}.admin-users-table tr.clickable:hover{background:var(--xh-accent-soft)}.admin-users-table th.num,.admin-users-table td.num{text-align:right}.admin-users-table td.mono{font-family:var(--xh-mono);font-size:.78rem}@media(max-width:640px){.admin-users-table,.admin-users-table tbody{display:block}.admin-users-table thead{display:none}.admin-users-table tr{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"id email balance" "id meta balance";gap:.2rem .75rem;padding:.75rem 0;border-bottom:1px solid var(--xh-line)}.admin-users-table tbody tr:first-child{padding-top:.15rem}.admin-users-table tbody tr:last-child{border-bottom:none;padding-bottom:.15rem}.admin-users-table th,.admin-users-table td{display:block;white-space:normal;overflow-wrap:anywhere;padding:0;border-bottom:none}.admin-users-table td:nth-child(1){grid-area:email;font-weight:600}.admin-users-table td:nth-child(2){grid-area:id;align-self:center;white-space:nowrap;overflow-wrap:normal}.admin-users-table td:nth-child(3){grid-area:meta;font-size:.78rem}.admin-users-table td:nth-child(4){grid-area:balance;white-space:nowrap;text-align:right;align-self:start}}.qr-box{padding:.75rem;background:#fff;border-radius:10px;border:1px solid var(--xh-line)}.pay-qr{display:block;width:18rem;max-width:100%;height:auto;margin-inline:auto;border-radius:10px;border:1px solid var(--xh-line);background:#fff}.badge{display:inline-flex;align-items:center;padding:.12rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600;background:var(--xh-accent-soft);color:var(--xh-muted)}.badge-ok{background:var(--xh-ok-bg);color:var(--xh-ok)}.badge-cloud{background:var(--xh-accent-soft);color:var(--xh-accent)}.badge-api{background:#6b728024;color:#6b7280}.panel-title{margin:0 0 .85rem;font-size:1rem;font-weight:600}.stack{display:flex;flex-direction:column;gap:.85rem}.stack-compact{gap:.35rem}.transfer-grid{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:.3rem 1.25rem;font-size:.875rem;align-items:baseline;padding:.6rem .8rem;border:1px solid var(--xh-line);border-radius:var(--xh-radius);background:var(--xh-bg)}.transfer-grid dt{color:var(--xh-muted);white-space:nowrap}.transfer-grid dt:after{content:":";margin-left:.15rem}.transfer-grid dd{margin:0;min-width:0;overflow-wrap:anywhere}.row{display:flex;gap:.65rem;flex-wrap:wrap;align-items:center}.row-between{justify-content:space-between;width:100%}.row-end{justify-content:flex-end;width:100%}.row-bottom{align-items:flex-end}.field-grow{flex:1;min-width:12rem}.field-narrow{width:5rem;flex:0 0 auto}.panel-narrow{max-width:28rem}.center-stack{align-items:center;text-align:center}.center-stack .field,.center-stack .modal-actions,.center-stack .error{width:100%;text-align:left}.center-stack .mono{margin:0;word-break:break-all}.issue-form{border-top:1px solid var(--xh-line-soft);padding-top:.85rem}.kv{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem 1rem}.kv-sub{padding-left:.85rem;font-size:.85rem}.line-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.line-card{display:flex;align-items:center;justify-content:space-between;gap:.75rem 1rem;padding:.7rem .85rem;border:1px solid var(--xh-line);border-radius:10px;background:var(--xh-bg);min-width:0}.line-card-main{min-width:0}.line-card-side{flex-shrink:0;text-align:right;font-variant-numeric:tabular-nums}.line-card.clickable{cursor:pointer}.line-card.clickable:hover{border-color:var(--xh-accent-ring);background:var(--xh-accent-soft)}.muted a,.modal-hint a,.stack-compact a,.error a{color:var(--xh-accent);font-weight:500;text-underline-offset:2px}.row-end .btn-link{margin-left:0}.pay-method:has(input:focus-visible){border-color:var(--xh-accent);box-shadow:0 0 0 3px var(--xh-accent-ring)}.pager-size{display:flex;align-items:center;gap:.4rem;flex:0 0 auto;white-space:nowrap}.pager-size .xh-select{width:auto;flex:0 0 auto}.pager-size .xh-select-trigger{width:auto;min-width:3.25rem}.field{display:flex;flex-direction:column;gap:.35rem;font-size:.875rem}.field input,.field select{padding:.5rem .7rem;border-radius:10px;border:1px solid var(--xh-line);background:var(--xh-bg);color:var(--xh-text);transition:border-color .15s ease,box-shadow .15s ease}.field input,.field select,.field .xh-select-trigger,.btn,button.btn{height:2.25rem}.field input:focus-visible,.field select:focus-visible{outline:none;border-color:var(--xh-accent);box-shadow:0 0 0 3px var(--xh-accent-ring)}.field input::placeholder{color:var(--xh-faint)}.auth-form{gap:.6rem}.field-inline{display:flex;align-items:flex-end;gap:.65rem}.field-inline .field{flex:1;min-width:0}.send-code{padding:.55rem .8rem;white-space:nowrap}.password-input-wrap{position:relative}.password-input-wrap input{width:100%;padding-right:2.5rem}.password-toggle{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;padding:.3rem;border:none;background:none;color:var(--xh-muted);cursor:pointer;border-radius:6px}.password-toggle:hover{color:var(--xh-text)}.pw-label-row{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 .6rem;margin-bottom:.25rem}.pw-hint{margin:0;font-size:.72rem;line-height:1.2;color:var(--xh-muted);display:inline-flex;flex-wrap:nowrap;align-items:baseline;gap:0 .45rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pw-hint-paren{color:var(--xh-faint)}.pw-hint .ok,.pw-match.ok{color:#2e9e5b}.pw-hint .bad,.pw-match.bad{color:#d64545}.pw-match{margin:0;font-size:.75rem}@media(max-width:480px){.auth-shell-top{padding:.55rem 1rem}.auth-shell-main{padding:.6rem 1rem 1.25rem}.auth-panel{padding:1rem 1rem 1.1rem}.auth-head{margin-bottom:.8rem}.auth-brand{font-size:1.3rem}.auth-title{margin-bottom:.7rem}.auth-form{gap:.6rem}}.btn,button.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.55rem 1rem;border-radius:10px;border:none;background:var(--xh-accent);color:var(--xh-accent-fg);font-weight:600;font-size:.875rem;cursor:pointer;text-decoration:none;box-shadow:0 1px 2px #1c1c1a1a,inset 0 1px #ffffff14;transition:filter .15s ease,box-shadow .15s ease,background-color .15s ease}.btn:hover:not(:disabled){filter:brightness(1.12);box-shadow:0 2px 6px #1c1c1a1f,inset 0 1px #ffffff14}.btn:active:not(:disabled){transform:translateY(.5px);filter:brightness(.94)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--xh-accent);outline-offset:2px}.btn-ghost,button.btn-ghost{background:transparent;color:var(--xh-text);border:1px solid var(--xh-line);font-weight:500;box-shadow:none}.btn-ghost:hover:not(:disabled){background:var(--xh-accent-soft);border-color:var(--xh-accent-ring);box-shadow:none;filter:none}.btn-ghost:active:not(:disabled){background:var(--xh-accent-press);transform:translateY(.5px)}.btn-icon,button.btn-icon{width:2.25rem;min-width:2.25rem;padding:0}.btn-icon.is-on{color:var(--xh-accent);border-color:var(--xh-accent);background:var(--xh-accent-soft)}.btn-icon-plain{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;padding:0;margin-left:.2rem;border:none;border-radius:6px;background:none;color:var(--xh-muted);cursor:pointer;vertical-align:-.2rem}.btn-icon-plain:hover:not(:disabled){color:var(--xh-text);background:var(--xh-accent-soft)}.btn-icon-plain:disabled{opacity:.55;cursor:not-allowed}.btn-danger,button.btn-danger{background:var(--xh-err-bg);color:var(--xh-err);border:1px solid transparent;font-weight:600}.btn-danger:hover:not(:disabled){filter:brightness(.97)}.tabs{display:flex;gap:.25rem;padding:.2rem;background:var(--xh-bg);border-radius:10px;border:1px solid var(--xh-line)}.tabs button{flex:1;padding:.45rem .5rem;border:none;border-radius:8px;background:transparent;color:var(--xh-muted);font-weight:500;font-size:.85rem;cursor:pointer}.tabs button:hover{color:var(--xh-text)}.tabs button:focus-visible,.chip:focus-visible,.account-menu-link:focus-visible,.check-item:focus-within{outline:2px solid var(--xh-accent);outline-offset:2px}.tabs button.active{background:var(--xh-panel);color:var(--xh-text);font-weight:600;box-shadow:0 1px 2px #18181b0f}.tabs.tabs-fit{align-self:flex-start}.tabs.tabs-fit button{flex:0 1 auto;padding-inline:.9rem}.ok{color:var(--xh-accent, #0d923f);margin:.5rem 0}.error{margin:0;color:var(--xh-err);font-size:.875rem;background:var(--xh-err-bg);padding:.55rem .75rem;border-radius:8px}.muted{color:var(--xh-muted);font-size:.875rem}.faint{color:var(--xh-faint);font-size:.8rem}code,.mono{font-family:var(--xh-mono);font-size:.85em}.banner{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.65rem;padding:.75rem .9rem;border-radius:var(--xh-radius);background:var(--xh-ok-bg);border:1px solid color-mix(in srgb,var(--xh-ok) 35%,transparent);font-size:.875rem}.banner code{word-break:break-all}.banner-warn{background:var(--xh-warn-bg);border-color:color-mix(in srgb,var(--xh-warn-line) 45%,transparent)}.list{list-style:none;padding:0;margin:0}.list li{padding:.85rem 0;border-bottom:1px solid var(--xh-line-soft)}.list li:last-child{border-bottom:none;padding-bottom:0}.list li:first-child{padding-top:0}.list-title{font-weight:600;margin:0 0 .15rem;min-width:0;overflow-wrap:anywhere}.list-meta{color:var(--xh-muted, #888);font-size:.85em}.list li.clickable{cursor:pointer}.list li.clickable:hover{background:var(--xh-accent-soft)}.btn-link,button.btn-link{border:none;background:none;color:var(--xh-muted);font-size:.72rem;font-weight:500;padding:.08rem .35rem;border-radius:5px;cursor:pointer;vertical-align:middle;margin-left:.4rem}.btn-link:hover:not(:disabled){color:var(--xh-text);background:var(--xh-accent-soft)}.btn-link:disabled{opacity:.5;cursor:not-allowed}.rename-input{width:100%;padding:.45rem .65rem;border-radius:10px;border:1px solid var(--xh-line);background:var(--xh-bg);color:var(--xh-text);font-size:.9rem;transition:border-color .15s ease,box-shadow .15s ease}.rename-input:focus-visible{outline:none;border-color:var(--xh-accent);box-shadow:0 0 0 3px var(--xh-accent-ring)}.chips{display:flex;flex-wrap:wrap;gap:.45rem}.chip,button.chip{padding:.35rem .9rem;border-radius:999px;border:1px solid var(--xh-line);background:var(--xh-bg);color:var(--xh-text);font-size:.82rem;font-weight:500;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,filter .15s ease}.chip:hover:not(:disabled){background:var(--xh-accent-soft)}.chip.chip-active{background:var(--xh-accent);color:var(--xh-accent-fg);border-color:transparent}.chip.chip-active:hover:not(:disabled){background:var(--xh-accent);filter:brightness(.94)}.chip.chip-static{cursor:default}.chip.chip-static:hover{background:var(--xh-bg)}.dl{display:grid;grid-template-columns:auto 1fr;gap:.55rem 1.25rem;margin:0;font-size:.9rem}.dl dt{color:var(--xh-muted);margin:0;align-self:center}.dl dd{margin:0;word-break:break-all}.dl-action{display:flex;align-items:center;justify-content:space-between;gap:.75rem;word-break:normal}.dl-action>span{min-width:0;word-break:break-all}.dl-action>.btn{flex-shrink:0}.stat{display:flex;flex-direction:column;gap:.15rem}.stat-label{color:var(--xh-muted);font-size:.8rem}.stat-value{font-size:1.75rem;font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.stat-id{font-size:.8rem;color:var(--xh-muted);word-break:break-all}.stat-text{font-size:.95rem;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.home-assets{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem}.home-asset{display:flex;flex-direction:column;gap:.12rem;min-width:0;padding:1.25rem 1.35rem;border:1px solid var(--xh-line);border-radius:var(--xh-radius-lg);background:var(--xh-panel);text-decoration:none;color:inherit;box-shadow:0 1px 2px #1c1c1a08;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.home-asset .stat-value,.home-asset .stat-text{font-size:1.2rem;font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.2}.home-asset .faint{margin-top:.1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-asset:hover{transform:translateY(-2px);border-color:var(--xh-accent-ring);box-shadow:var(--xh-shadow-lift)}.home-account{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.home-account .dl{margin:.35rem 0 0}.home-account .badge,.home-account .btn-link{margin-left:.35rem}.home-account>.btn{flex-shrink:0;margin-top:.15rem}.product-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.65rem}.product-item{padding:.95rem 1rem;border:1px solid var(--xh-line);border-radius:12px;background:var(--xh-bg);scroll-margin-top:4.5rem}.product-desc{margin:.28rem 0 0;color:var(--xh-muted);font-size:.9rem;line-height:1.5}.product-modules{list-style:none;padding:0;margin:.7rem 0 0}.product-skus{list-style:none;padding:0;margin:.75rem 0 0;display:flex;flex-direction:column;gap:.45rem}.product-sku{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.55rem .75rem;border:1px solid var(--xh-line);border-radius:var(--xh-radius);background:var(--xh-panel);flex-wrap:wrap}.product-sku-info{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .85rem;min-width:0}.product-sku-name{font-size:.9rem}.product-sku-price{font-variant-numeric:tabular-nums;font-weight:600;font-size:.9rem}.product-sku .btn{flex-shrink:0}.product-sku-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.4rem;margin-left:auto;flex-shrink:0}.product-sku>.row{margin-left:auto}.security-row{flex-wrap:nowrap}.security-row>.btn,.security-row>a.btn,.security-row>.badge{flex-shrink:0}.empty{padding:1.25rem 0;text-align:center;color:var(--xh-muted);font-size:.9rem}.auth-footer{margin:1rem 0 0;color:var(--xh-muted);font-size:.875rem}.auth-footer a{color:var(--xh-text);font-weight:500;text-underline-offset:2px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:1rem;background:#00000080;animation:fade-in .2s ease both}.modal-backdrop-stack{z-index:110}.modal{width:100%;max-width:480px;max-height:calc(100dvh - 2rem);overflow-y:auto;background:var(--xh-elevated);border:1px solid var(--xh-line);border-radius:var(--xh-radius-lg);padding:1.4rem 1.5rem 1.5rem;box-shadow:var(--xh-shadow);animation:pop-in .18s ease both}.modal-title{margin:0 0 .35rem;font-size:1.05rem;font-weight:600;letter-spacing:-.01em}.modal-head{justify-content:space-between;align-items:center;gap:8px;margin:0 0 .35rem}.modal-head .modal-title{margin:0}.modal-hint{margin:0 0 1rem;color:var(--xh-muted);font-size:.85rem}.modal-code{padding:.85rem .95rem;border:1px solid var(--xh-line);border-radius:var(--xh-radius);background:var(--xh-bg);font-size:.82rem;overflow-x:auto;-webkit-user-select:all;user-select:all;cursor:text}.modal-code code{font-family:var(--xh-mono);word-break:break-all;white-space:pre-wrap}.modal-code+input{margin-top:.6rem}.modal-mismatch{margin:.45rem 0 0;color:var(--xh-err);font-size:.8rem}.modal input,.modal textarea{width:100%;padding:.55rem .75rem;border-radius:10px;border:1px solid var(--xh-line);background:var(--xh-bg);color:var(--xh-text);font-size:.875rem;transition:border-color .15s ease,box-shadow .15s ease}.modal input:focus-visible,.modal textarea:focus-visible{outline:none;border-color:var(--xh-accent);box-shadow:0 0 0 3px var(--xh-accent-ring)}.modal input[type=radio]{width:auto;padding:0;border:none;accent-color:var(--xh-accent)}.checkout-summary{margin:0 0 1rem;padding:.75rem .85rem;border:1px solid var(--xh-line-soft);border-radius:var(--xh-radius);background:var(--xh-bg)}.checkout-line{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.55rem}.checkout-line-main{min-width:0}.checkout-line-price{flex-shrink:0;margin-left:auto;font-variant-numeric:tabular-nums;font-weight:600;font-size:.9rem}.checkout-total{margin-top:.4rem;text-align:right;font-size:1.25rem;font-weight:700;font-variant-numeric:tabular-nums}.pay-methods{border:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:.45rem}.pay-methods legend{padding:0;margin:0 0 .4rem}.pay-method{display:flex;align-items:flex-start;gap:.7rem;margin:0;padding:.7rem .8rem;border:1px solid var(--xh-line);border-radius:var(--xh-radius);cursor:pointer}.pay-method>span{display:flex;flex-direction:column;gap:.15rem;min-width:0}.pay-method-active{border-color:var(--xh-accent);background:var(--xh-accent-soft)}.pay-method:has(input:disabled){opacity:.55;cursor:not-allowed}.modal input::placeholder,.modal textarea::placeholder{color:var(--xh-faint)}.modal textarea{resize:vertical;font-family:var(--xh-mono);font-size:.82rem;line-height:1.5}.modal-actions{justify-content:flex-end;margin-top:1.15rem}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(max-width:640px){.app-header-inner{padding:.5rem .9rem;gap:.55rem}.app-main{padding:1.25rem .9rem 2.5rem}.home-account{flex-direction:column}}@media(max-width:860px){.home-assets{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){.page,.auth-panel,.modal,.modal-backdrop,.home-asset{animation:none;transition:none}}.meter{height:4px;border-radius:999px;background:var(--xh-line);margin-top:.4rem;overflow:hidden}.meter-fill{height:100%;border-radius:999px;background:var(--xh-accent)}.spark{display:flex;align-items:flex-end;gap:3px;height:48px;margin-top:.9rem;padding-top:.25rem}.spark-bar{flex:1;min-height:4px;border-radius:2px 2px 0 0;background:var(--xh-accent);opacity:.75}.feedback-modal{width:min(560px,94vw);max-width:min(560px,94vw)}.feedback-close{flex:0 0 auto;width:1.6rem;height:1.6rem;display:grid;place-items:center;padding:0;border:none;border-radius:999px;background:transparent;color:var(--xh-faint);font-size:1.1rem;line-height:1;cursor:pointer}.feedback-close:hover{background:var(--xh-accent-soft);color:var(--xh-text)}.feedback-close:focus-visible{outline:2px solid var(--xh-accent);outline-offset:2px}.feedback-iframe{width:100%;height:620px;border:0;border-radius:8px;background:var(--xh-panel, #fff)}.qty-stepper{display:inline-flex;align-items:center;border:1px solid var(--xh-line);border-radius:8px;overflow:hidden;background:var(--xh-panel);flex-shrink:0}.qty-stepper-btn{width:1.85rem;height:1.85rem;margin:0;padding:0;border:none;background:var(--xh-panel);color:var(--xh-text);cursor:pointer}.qty-stepper-btn:hover:not(:disabled){background:var(--xh-accent-soft)}.qty-stepper-btn:disabled{color:var(--xh-faint);cursor:default}.qty-stepper-value{min-width:1.45rem;text-align:center;font-variant-numeric:tabular-nums;font-size:.85rem}.cart-line{justify-content:space-between;flex-wrap:wrap;gap:.5rem}.cart-line-actions{gap:.4rem}.cart-footer{justify-content:space-between;align-items:center;gap:.75rem;padding-top:.35rem}.xh-select{position:relative;display:inline-flex;min-width:0;vertical-align:middle}.xh-select-trigger{display:inline-flex;align-items:center;width:100%;margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--xh-panel);color:var(--xh-text);border:1px solid var(--xh-line);border-radius:10px;height:2.25rem;padding:0 1.7rem 0 .65rem;cursor:pointer;text-align:left;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2371717a' d='M3 4.5L6 8l3-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .45rem center}.xh-select-sm .xh-select-trigger{height:1.75rem;padding:0 1.5rem 0 .45rem;font-size:.8rem;border-radius:7px}.xh-select-trigger:hover:not(:disabled){border-color:var(--xh-muted)}.xh-select-trigger:focus-visible{outline:none;border-color:var(--xh-accent);box-shadow:0 0 0 3px var(--xh-accent-ring)}.xh-select-trigger:disabled{opacity:.55;cursor:default}.xh-select-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xh-select-menu{position:fixed;z-index:200;overflow:auto;box-sizing:border-box;padding:.25rem;background:var(--xh-elevated);color:var(--xh-text);border:1px solid var(--xh-line);border-radius:10px;box-shadow:var(--xh-shadow);opacity:1}.xh-select-option{display:block;width:100%;margin:0;border:none;border-radius:7px;background:transparent;color:inherit;text-align:left;padding:.4rem .55rem;cursor:pointer}.xh-select-option.is-active,.xh-select-option:hover{background:var(--xh-accent-soft)}.xh-select-option.is-selected{font-weight:600}.field .xh-select{width:100%}.account-menu-row .xh-select{max-width:7.5rem;flex:0 0 auto}.prefs-field .xh-select{min-width:5.5rem}
