* {
    box-sizing: border-box;
}

body {
    margin: 0;
    background: #f5f7fa;
    color: #273143;
    font-family: "Microsoft YaHei", system-ui, sans-serif;
}

.top {
    height: 66px;
    padding: 0 5%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #17223b;
    color: #fff;
}

.brand {
    display: flex;
    gap: 10px;
    align-items: center;
    color: #fff;
    text-decoration: none;
}

.brand b {
    padding: 8px;
    border-radius: 8px;
    background: linear-gradient(135deg, #7588ff, #3e55c9);
}

.brand small {
    display: block;
    margin-top: 3px;
    color: #afbbd2;
    font-size: 11px;
}

.top nav {
    display: flex;
    gap: 16px;
    align-items: center;
    font-size: 14px;
}

.top a,
.link {
    border: 0;
    background: transparent;
    color: #fff;
    cursor: pointer;
    text-decoration: none;
}

.app {
    display: flex;
    min-height: calc(100vh - 66px);
}

aside {
    width: 270px;
    flex-shrink: 0;
    padding: 22px 16px;
    background: #202d49;
    color: #c6d0e7;
}

aside h4 {
    margin: 27px 9px 10px;
    color: #8091b5;
    font-size: 12px;
    letter-spacing: .5px;
}

.new,
.preset,
.history button {
    width: 100%;
    margin: 3px 0;
    padding: 10px 12px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: inherit;
    cursor: pointer;
    text-align: left;
}

.new {
    background: #344364;
    color: #fff;
    font-weight: bold;
}

.preset:hover,
.history button:hover {
    background: #303e5d;
}

.history span {
    display: block;
    padding: 9px;
    color: #8091b5;
    font-size: 13px;
}

.chat-area {
    width: min(850px, 100%);
    margin: auto;
    padding: 38px 22px;
}

.welcome h1 {
    margin: 0;
    font-size: 27px;
}

.welcome p {
    color: #68758a;
}

.messages {
    min-height: 360px;
    margin: 28px 0;
}

.card {
    max-width: 92%;
    margin: 14px 0;
    padding: 16px 18px;
    border-radius: 14px 14px 14px 4px;
    background: #fff;
    box-shadow: 0 1px 5px #14213d13;
    font-size: 14px;
    line-height: 1.7;
}

.card p {
    margin: 7px 0;
}

.user {
    margin-left: auto;
    border-radius: 14px 14px 4px 14px;
    background: #324666;
    color: #fff;
}

.answer-head {
    display: flex;
    justify-content: space-between;
}

.answer-head em {
    padding: 2px 8px;
    border-radius: 20px;
    background: #edf6ee;
    color: #287445;
    font-size: 12px;
    font-style: normal;
}

.card li {
    margin: 7px 0;
}

.card ul {
    padding-left: 20px;
    color: #536176;
}

.composer {
    display: flex;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid #d9dfeb;
    border-radius: 14px;
    background: #fff;
}

.composer textarea {
    height: 47px;
    flex: 1;
    padding: 11px;
    border: 0;
    outline: 0;
    resize: none;
    font: inherit;
}

.composer button,
.primary {
    padding: 0 18px;
    border: 0;
    border-radius: 9px;
    background: #3a54c6;
    color: #fff;
    cursor: pointer;
}

.notice {
    color: #8490a2;
    font-size: 12px;
    text-align: center;
}

.login,
.admin {
    max-width: 900px;
    margin: 54px auto;
    padding: 28px;
}

.login {
    max-width: 420px;
}

.login label,
.grid label {
    display: block;
    margin: 14px 0;
    font-size: 13px;
}

.login input,
.grid input,
.grid select {
    display: block;
    width: 100%;
    margin-top: 5px;
    padding: 10px;
    border: 1px solid #ccd4e0;
    border-radius: 7px;
}

.login .primary {
    width: 100%;
    height: 40px;
    margin: 8px 0;
}

.error {
    color: #c43a3a;
}

.admin > p {
    color: #6f7b8e;
}

.admin .card {
    max-width: 100%;
    margin: 20px 0;
}

.stats {
    display: flex;
    gap: 14px;
    margin: 22px 0;
}

.stats div {
    min-width: 130px;
    padding: 14px;
    border-radius: 10px;
    background: #fff;
}

.stats b {
    display: block;
    margin-top: 5px;
    color: #3a54c6;
    font-size: 25px;
}

.grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0 18px;
}

.grid .primary {
    height: 42px;
    margin-bottom: 14px;
    align-self: end;
}

.user-table-wrap {
    overflow-x: auto;
}

.user-table {
    width: 100%;
    border-collapse: collapse;
}

.user-table th,
.user-table td {
    padding: 10px;
    border-bottom: 1px solid #e5e9f0;
    text-align: left;
}

.danger {
    padding: 6px 12px;
    border: 0;
    border-radius: 7px;
    background: #c43a3a;
    color: #fff;
    cursor: pointer;
}

.danger:disabled {
    cursor: not-allowed;
    opacity: .45;
}

@media (max-width: 700px) {
    aside {
        display: none;
    }

    .chat-area {
        padding: 22px 14px;
    }

    .grid {
        grid-template-columns: 1fr;
    }

    .stats {
        flex-wrap: wrap;
    }
}
