:root{--blue:#135bd8;--ink:#172033;--muted:#667085;--line:#e5e9f0;--bg:#f5f7fb;--danger:#c9362b}*{box-sizing:border-box}html{font:15px/1.55 system-ui,"Microsoft YaHei",sans-serif;color:var(--ink);background:var(--bg)}body{margin:0}.topbar{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1180px)/2));position:sticky;top:0;z-index:5}.brand{font-size:20px;font-weight:800;color:var(--ink);text-decoration:none}.topbar nav{display:flex;gap:18px;align-items:center}.topbar nav a{color:#344054;text-decoration:none}.topbar .user{color:var(--muted)}.container{max-width:1180px;margin:32px auto;padding:0 22px;min-height:calc(100vh - 150px)}footer{text-align:center;color:var(--muted);padding:24px}.hero-row,.section-title{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:22px}h1{font-size:30px;margin:0 0 8px}h2{font-size:20px;margin:0 0 16px}.muted{color:var(--muted)}.panel,.auth-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:22px;box-shadow:0 4px 18px rgba(22,34,58,.04)}.auth-card,.narrow{max-width:560px;margin:40px auto}.balance-card{background:#102a56;color:#fff;border-radius:14px;padding:18px 24px;min-width:220px;display:grid}.balance-card span,.balance-card small{color:#b9c9e8}.balance-card strong{font-size:28px}.warning,.notice,.dev-code{padding:13px 16px;border-radius:9px;margin:12px 0 20px;background:#fff6dc;border:1px solid #f1d27a}.notice{background:#eef5ff;border-color:#bfd5ff}.dev-code{background:#f1ecff;border-color:#cfc1ff}form{display:grid;gap:10px}label{font-weight:600;margin-top:4px}input,select{width:100%;padding:10px 12px;border:1px solid #cdd5df;border-radius:8px;background:#fff}button,.button{border:0;border-radius:8px;background:var(--blue);color:#fff;padding:10px 16px;font-weight:700;text-decoration:none;cursor:pointer;display:inline-block;text-align:center}.secondary{background:#e9eff9;color:#234}.danger{background:var(--danger)}button:disabled{opacity:.55;cursor:not-allowed}.inline-field,.inline-form{display:flex;gap:8px;align-items:center}.inline-field input{flex:1}.inline-form{display:inline-flex}.inline-form input,.inline-form select{width:auto}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;margin-bottom:24px}.form-grid .wide{grid-column:1/-1}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.stat-grid>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;display:grid}.stat-grid span{color:var(--muted)}.stat-grid strong{font-size:23px}.action-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.action-grid a{background:#fff;border:1px solid var(--line);padding:24px;border-radius:12px;text-decoration:none;color:var(--ink);font-weight:700}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:middle}th{color:var(--muted);font-size:13px}code{font-size:12px;word-break:break-all}progress{width:100%;height:12px;margin-top:10px}.upload-panel input[type=file]{padding:18px;border-style:dashed}@media(max-width:760px){.hero-row,.section-title{align-items:flex-start;flex-direction:column}.stat-grid,.action-grid,.form-grid{grid-template-columns:1fr}.topbar{padding:0 14px}.topbar nav{gap:10px}.topbar .user{display:none}.container{margin-top:18px;padding:0 12px}.panel{padding:16px}table{display:block;overflow-x:auto}}


/* Global site chrome: shared by the public site and authenticated workspaces. */
body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.skip-link {
    position: fixed;
    top: 10px;
    left: 10px;
    z-index: 30;
    transform: translateY(-150%);
    border-radius: 8px;
    background: #17324d;
    color: #fff;
    padding: 9px 13px;
    text-decoration: none;
}

.skip-link:focus {
    transform: translateY(0);
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 20;
    border-bottom: 1px solid #dfe5eb;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 2px 14px rgba(18, 37, 57, .04);
}

.site-header-inner {
    display: flex;
    min-height: 70px;
    max-width: 1260px;
    margin: 0 auto;
    padding: 0 28px;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.site-brand {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: 12px;
    color: #17324d;
    text-decoration: none;
}

.site-brand-logo {
    display: block;
    width: 142px;
    height: auto;
    flex: 0 0 auto;
}

.site-brand-divider {
    width: 1px;
    height: 30px;
    flex: 0 0 auto;
    background: #d5dde4;
}

.site-brand-service {
    display: grid;
    min-width: 0;
    line-height: 1.12;
}

.site-brand-service strong {
    font-size: 17px;
    letter-spacing: .08em;
}

.site-brand-service small {
    margin-top: 3px;
    color: #687583;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
}

.site-header-actions,
.site-navigation {
    display: flex;
    align-items: center;
}

.site-header-actions {
    min-width: 0;
    gap: 22px;
}

.site-navigation {
    gap: 18px;
}

.site-navigation a {
    color: #455462;
    font-size: 14px;
    font-weight: 650;
    text-decoration: none;
    white-space: nowrap;
}

.site-navigation a:hover,
.site-navigation a:focus-visible,
.site-footer a:hover,
.site-footer a:focus-visible {
    color: #176eb3;
}

.site-nav-emphasis {
    border: 1px solid #1d5b88;
    border-radius: 7px;
    padding: 7px 12px;
    color: #17324d !important;
}

.site-nav-emphasis:hover,
.site-nav-emphasis:focus-visible {
    border-color: #176eb3;
    background: #edf7fc;
}

.site-service-line {
    display: grid;
    gap: 1px;
    padding-left: 18px;
    border-left: 1px solid #e0e5ea;
    color: #7a8792;
    font-size: 11px;
    line-height: 1.2;
}

.site-service-line a {
    color: #17324d;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: .02em;
    text-decoration: none;
    white-space: nowrap;
}

.user {
    max-width: 180px;
    overflow: hidden;
    color: #697785;
    font-size: 13px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.container {
    flex: 1 0 auto;
}

.site-footer {
    flex: 0 0 auto;
    padding: 0;
    text-align: left;
    margin-top: 46px;
    background: #142c42;
    color: #dce5eb;
}

.site-footer-inner {
    display: grid;
    grid-template-columns: minmax(280px, 1.7fr) minmax(132px, .65fr) minmax(205px, .9fr);
    max-width: 1260px;
    margin: 0 auto;
    padding: 42px 28px 34px;
    gap: 48px;
}

.site-footer-brand img {
    display: block;
    width: 157px;
    height: auto;
    filter: brightness(0) invert(1) grayscale(1) contrast(.8);
    opacity: .92;
}

.site-footer-brand p {
    margin: 18px 0 7px;
    color: #fff;
    font-size: 16px;
    font-weight: 700;
}

.site-footer-brand small {
    display: block;
    max-width: 420px;
    color: #b5c4ce;
    font-size: 13px;
    line-height: 1.7;
}

.site-footer-column {
    display: grid;
    align-content: start;
    gap: 10px;
}

.site-footer-column h2 {
    margin: 0 0 8px;
    color: #fff;
    font-size: 14px;
}

.site-footer a {
    color: #c4d1d9;
    font-size: 13px;
    text-decoration: none;
}

.site-footer-legal {
    display: flex;
    max-width: 1260px;
    margin: 0 auto;
    padding: 17px 28px 18px;
    border-top: 1px solid rgba(224, 236, 243, .15);
    gap: 20px;
    color: #9eb0bc;
    font-size: 12px;
}

.site-footer-legal a {
    color: #cbd7de;
}

@media (max-width: 1080px) {
    .site-header-inner {
        padding-right: 20px;
        padding-left: 20px;
        gap: 18px;
    }

    .site-header-actions {
        gap: 14px;
    }

    .site-navigation {
        gap: 13px;
    }

    .site-service-line {
        display: none;
    }
}

@media (max-width: 800px) {
    .site-header-inner {
        min-height: 62px;
        padding-right: 15px;
        padding-left: 15px;
        gap: 12px;
    }

    .site-brand-logo {
        width: 118px;
    }

    .site-brand-divider {
        height: 25px;
    }

    .site-brand-service strong {
        font-size: 15px;
    }

    .site-brand-service small,
    .site-navigation-public,
    .user {
        display: none;
    }

    .site-header-actions,
    .site-navigation {
        gap: 10px;
    }

    .site-navigation a {
        font-size: 13px;
    }

    .site-nav-emphasis {
        padding: 6px 9px;
    }

    .site-footer-inner {
        grid-template-columns: 1.25fr 1fr;
        padding: 34px 20px 28px;
        gap: 32px 24px;
    }

    .site-footer-brand {
        grid-column: 1 / -1;
    }

    .site-footer-legal {
        padding-right: 20px;
        padding-left: 20px;
    }
}

@media (max-width: 480px) {
    .site-brand {
        gap: 8px;
    }

    .site-brand-logo {
        width: 96px;
    }

    .site-brand-divider {
        height: 22px;
    }

    .site-brand-service strong {
        font-size: 14px;
    }

    .site-header-actions,
    .site-navigation {
        gap: 8px;
    }

    .site-navigation a {
        font-size: 12px;
    }



    .site-footer-inner {
        grid-template-columns: 1fr;
    }

    .site-footer-brand,
    .site-footer-column {
        grid-column: auto;
    }

    .site-footer-legal {
        display: grid;
        gap: 6px;
    }
}