﻿:root {
    font-family: PingFang SC,Microsoft YaHei,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
    line-height: 1.5;
    font-weight: 400;
    color: #f5f7ff;
    background: radial-gradient(circle at top,rgba(99,132,255,.14),transparent 34%),linear-gradient(180deg,#2c2f36,#23252c);
    font-synthesis: none;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale
}

* {
    box-sizing: border-box
}

html {
    min-width: 320px;
    background: #23252c
}

body {
    margin: 0;
    min-width: 320px;
    min-height: 100vh
}

button {
    font: inherit
}

#app {
    min-height: 100vh
}

.app-shell {
    min-height: 100vh;
    padding: 4px
}

.phone-page {
    width: min(100%,520px);
    min-height: calc(100vh - 48px);
    margin: 0 auto;
    padding: 14px;
    border-radius: 26px;
    background: linear-gradient(180deg,#3c3d43f5,#2e2f35fa);
    box-shadow: 0 20px 50px #00000059,inset 0 1px #ffffff0f
}

.summary-panel {
    margin-bottom: 4px
}

.summary-grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 8px
}

.summary-card {
    padding: 12px 10px;
    border-radius: 10px;
    background: #ffffff0d;
    text-align: center
}

.summary-name {
    margin: 0;
    color: #f5f7ff;
    font-size: 13px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

.summary-value {
    margin: 8px 0 0;
    font-size: 18px;
    font-weight: 700
}

.summary-note {
    text-align: right;
    margin: 4px 2px 0;
    color: #d8d9dc;
    font-size: 12px
}

.summary-time {
    margin-left: 4px;
    color: #ff9f43
}

.fund-list {
    display: flex;
    flex-direction: column;
    gap: 3px
}

.fund-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 5px 10px;
    border: 0px solid rgba(255,96,96,.9);
    border-radius: 5px;
    background: #ffffff08;
    color: inherit;
    text-align: left
}

.fund-left {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0
}

.fund-name {
    min-width: 0;
    overflow: hidden;
    color: #fff;
    font-size: 16px;
    white-space: nowrap;
    text-overflow: ellipsis
}

.session-badge {
    flex-shrink: 0;
    padding: 2px 8px;
    border-radius: 999px;
    background: #83a9ff3d;
    color: #eef3ff;
    font-size: 12px;
    line-height: 1.3
}

.fund-impact {
    flex-shrink: 0;
    margin-left: 12px;
    font-size: 16px;
    font-weight: 700
}

.detail-header {
    margin-bottom: 10px
}

.back-button {
    margin-bottom: 12px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #bcc8ff
}

.detail-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px
}

.detail-title {
    margin: 0;
    color: #fff;
    font-size: 18px;
    font-weight: 700
}

.detail-impact {
    margin: 0;
    flex-shrink: 0;
    font-size: 16px;
    font-weight: 700
}

.holdings-card {
    overflow: hidden;
    border-radius: 10px;
    background: #ffffff0a
}

.table-head, .table-row {
    display: grid;
    grid-template-columns: minmax(0,1.6fr) .8fr .9fr;
    align-items: center;
    gap: 8px;
    padding: 12px
}

.table-head {
    border-bottom: 1px solid rgba(255,255,255,.16);
    color: #f9fbff;
    font-size: 15px;
    font-weight: 700
}

.table-row {
    border-bottom: 1px solid rgba(255,255,255,.16);
    color: #fff;
    font-size: 15px
}

    .table-row:last-of-type {
        border-bottom: 0
    }

.stock-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
}

.stock-weight, .stock-change, .table-head span:nth-child(2), .table-head span:nth-child(3) {
    text-align: right
}

.expand-button {
    width: 100%;
    padding: 14px 12px;
    border: 0;
    border-top: 1px solid rgba(255,255,255,.16);
    background: transparent;
    color: #f2f4ff
}

.detail-note {
    margin: 12px 4px 0;
    color: #f2f4ff;
    font-size: 13px;
    text-align: center
}

.state-card {
    display: flex;
    min-height: 320px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 10px;
    text-align: center
}

.state-title {
    margin: 0;
    color: #fff;
    font-size: 20px;
    font-weight: 700
}

.state-text {
    margin: 0;
    color: #c7c8cf
}

.retry-button {
    padding: 10px 16px;
    border: 1px solid rgba(131,169,255,.5);
    border-radius: 10px;
    background: #83a9ff24;
    color: #f4f7ff
}

.is-up {
    color: #ff4d4f
}

.is-down {
    color: #36c275
}

.is-flat {
    color: #e8ebf3
}

@media (max-width: 420px) {
    .app-shell {
        padding: 0
    }

    .phone-page {
        width: 100%;
        min-height: 100vh;
        padding: 4px;
        border-radius: 0
    }

    .summary-name {
        font-size: 12px
    }

    .fund-name, .fund-impact, .table-head, .table-row, .detail-impact {
        font-size: 14px
    }
}

.qrcode-section[data-v-96eeb962] {
    padding: 2rem 10px;
    display: flex;
    flex-direction: column;
    gap: .75rem;
    align-items: center
}

.qrcode-wrapper[data-v-96eeb962] {
    display: flex;
    justify-content: space-between;
    width: 100%
}

.qrcode-image[data-v-96eeb962] {
    width: 140px;
    height: 140px;
    border-radius: 12px;
    box-shadow: 0 2px 8px #0000001a
}

.visit-link[data-v-96eeb962] {
    color: #667eea;
    text-decoration: none;
    font-size: 1rem;
    font-weight: 500;
    transition: color .2s ease
}

    .visit-link[data-v-96eeb962]:hover {
        color: #764ba2;
        text-decoration: underline
    }

.qrcode-text[data-v-96eeb962] {
    width: 100%;
    margin: 0;
    font-size: .875rem;
    color: #666;
    text-align: left
}
