:root { color-scheme: light; font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif; color: #12213a; background: #f3f7fc; }
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; min-width: 320px; background: #f3f7fc; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.topbar { height: 68px; display: flex; align-items: center; gap: 28px; padding: 0 30px; background: #fff; border-bottom: 1px solid #dce5f0; position: sticky; top: 0; z-index: 5; }
.brand { display: flex; gap: 18px; align-items: baseline; color: #10203d; text-decoration: none; }
.brand strong { color: #1266df; font-size: 28px; letter-spacing: -.04em; }
.brand span { font-size: 18px; font-weight: 750; }
.account-chip { margin-left: auto; display: flex; align-items: center; gap: 12px; padding: 8px 12px; border: 1px solid #d5e0ee; border-radius: 8px; }
.account-label { color: #63738b; font-size: 12px; }
.account-chip strong { font-size: 13px; }
.back-link { color: #0866df; font-size: 13px; font-weight: 700; text-decoration: none; }
.shell { min-height: calc(100vh - 68px); display: grid; grid-template-columns: 216px 1fr; }
.sidebar { padding: 28px 14px; background: #fff; border-right: 1px solid #dce5f0; }
.sidebar a { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 15px; margin-bottom: 6px; border-radius: 8px; color: #3a4d68; font-size: 14px; font-weight: 650; text-decoration: none; }
.sidebar a.active { color: #0866df; background: #e9f2ff; }
.workspace { min-width: 0; padding: 34px 30px 48px; }
.page-heading { max-width: 1380px; margin: 0 auto 24px; display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.page-heading p { margin: 0 0 5px; color: #0c6fe8; font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.page-heading h1 { margin: 0; font-size: clamp(26px, 3vw, 38px); letter-spacing: -.035em; }
.page-heading span { display: block; margin-top: 8px; color: #64748b; font-size: 14px; }
.page-actions { display: flex; gap: 10px; align-items: center; }
.role-settings-button { color: #0866df; background: #e9f2ff; }
.login-card, .documents-card, .editor-card { background: #fff; border: 1px solid #d9e3ef; border-radius: 10px; box-shadow: 0 8px 28px rgba(20, 55, 95, .05); }
.login-card { max-width: 880px; margin: 60px auto; display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; }
.login-copy { padding: 40px; background: #0d64d8; color: #fff; }
.login-copy > span { font-size: 12px; font-weight: 800; letter-spacing: .08em; opacity: .8; }
.login-copy h2 { margin: 12px 0; font-size: 28px; }
.login-copy p { margin: 0; line-height: 1.7; color: rgba(255,255,255,.8); }
.login-card form { padding: 36px; display: grid; align-content: center; gap: 18px; }
label { display: grid; gap: 7px; color: #33445e; font-size: 13px; font-weight: 650; }
input, textarea { width: 100%; border: 1px solid #cfdbea; border-radius: 7px; background: #fff; color: #15233a; outline: none; transition: border-color .2s, box-shadow .2s; }
input { height: 43px; padding: 0 12px; }
textarea { min-height: 190px; padding: 12px; line-height: 1.6; resize: vertical; }
input:focus, textarea:focus { border-color: #1677ee; box-shadow: 0 0 0 3px rgba(22,119,238,.12); }
.primary, .secondary { min-height: 43px; border: 0; border-radius: 7px; cursor: pointer; font-weight: 750; }
.primary { padding: 0 20px; color: #fff; background: #086ced; }
.primary:hover { background: #045bc9; }
.primary:disabled { opacity: .6; cursor: wait; }
.secondary { padding: 0 16px; color: #31506f; background: #e7eef7; }
.manager { max-width: 1380px; margin: 0 auto; display: grid; grid-template-columns: minmax(560px, 1.45fr) minmax(360px, .85fr); gap: 18px; align-items: start; }
.documents-card, .editor-card { min-width: 0; padding: 22px; }
.card-heading { min-height: 44px; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.card-heading h2 { margin: 0; font-size: 20px; }
.card-heading span { display: block; margin-top: 5px; color: #77859a; font-size: 12px; }
.compact { min-height: 40px; }
.search { position: relative; margin: 14px 0 16px; }
.search span { position: absolute; left: 13px; top: 11px; color: #6b7e98; font-size: 19px; }
.search input { padding-left: 39px; }
.table-wrap { position: relative; min-height: 360px; overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: 13px; }
th { padding: 12px 10px; color: #586a82; background: #f4f7fb; text-align: left; font-weight: 750; white-space: nowrap; }
td { padding: 14px 10px; border-bottom: 1px solid #e7edf5; vertical-align: middle; }
td.title { min-width: 180px; color: #17304f; font-weight: 750; }
td.source { max-width: 190px; color: #687a91; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.status { display: inline-flex; padding: 4px 8px; border-radius: 5px; color: #148044; background: #e5f8eb; font-size: 11px; font-weight: 750; }
.row-actions { display: flex; align-items: center; gap: 14px; white-space: nowrap; }
.preview, .delete { border: 0; padding: 5px 0; color: #0d6be6; background: transparent; cursor: pointer; }
.delete { color: #c43d3d; }
.empty { min-height: 280px; display: grid; place-content: center; gap: 6px; text-align: center; color: #7b8ba0; }
.empty strong { color: #344b67; }
.editor-card { position: sticky; top: 90px; }
.editor-card form { display: grid; gap: 17px; margin-top: 16px; }
label b { color: #e64646; }
.drop-zone { min-height: 92px; place-content: center; padding: 14px; border: 1px dashed #86b7f7; border-radius: 8px; text-align: center; cursor: pointer; }
.drop-zone span { color: #7b899b; font-size: 12px; font-weight: 500; }
.drop-zone input { display: none; }
.save { width: 100%; }
.notice { position: fixed; right: 24px; bottom: 24px; z-index: 10; max-width: 420px; margin: 0; padding: 13px 16px; border-radius: 7px; color: #fff; background: #163657; box-shadow: 0 10px 30px rgba(0,0,0,.18); font-size: 13px; }
.notice.error { background: #a73131; }
.preview-dialog { width: min(760px, calc(100vw - 32px)); max-height: min(84vh, 860px); padding: 0; border: 0; border-radius: 12px; color: #12213a; background: #fff; box-shadow: 0 26px 80px rgba(20, 46, 80, .28); }
.preview-dialog::backdrop { background: rgba(13, 28, 49, .5); backdrop-filter: blur(2px); }
.preview-card { display: grid; grid-template-rows: auto auto minmax(0, 1fr); max-height: min(84vh, 860px); }
.preview-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 24px 26px 18px; border-bottom: 1px solid #e3eaf3; }
.preview-heading span { color: #0c6fe8; font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.preview-heading h2 { margin: 5px 0 0; font-size: 22px; line-height: 1.35; }
.preview-close { width: 36px; height: 36px; flex: 0 0 auto; border: 0; border-radius: 8px; color: #52657e; background: #edf2f8; cursor: pointer; font-size: 25px; line-height: 1; }
.preview-close:hover { color: #17304f; background: #dfe8f3; }
.preview-meta { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; margin: 0; padding: 15px 26px; background: #f7f9fc; border-bottom: 1px solid #e3eaf3; }
.preview-meta div { min-width: 0; }
.preview-meta dt { margin-bottom: 4px; color: #7a899d; font-size: 11px; font-weight: 750; }
.preview-meta dd { margin: 0; color: #344b67; font-size: 13px; overflow-wrap: anywhere; }
.preview-meta a { color: #0866df; }
.preview-body { min-height: 180px; overflow: auto; padding: 24px 26px 30px; }
.preview-body pre { margin: 0; color: #273b55; font: 14px/1.8 Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif; white-space: pre-wrap; overflow-wrap: anywhere; }
.role-dialog { width: min(680px, calc(100vw - 32px)); padding: 0; border: 0; border-radius: 12px; color: #12213a; background: #fff; box-shadow: 0 26px 80px rgba(20, 46, 80, .28); }
.role-dialog::backdrop { background: rgba(13, 28, 49, .5); backdrop-filter: blur(2px); }
.role-card { display: block; }
.role-body { display: grid; gap: 18px; padding: 22px 26px; }
.role-body > p { margin: 0; color: #66778e; font-size: 13px; line-height: 1.65; }
.role-body textarea { min-height: 210px; }
.role-examples { display: grid; gap: 5px; padding: 13px 14px; border-radius: 8px; color: #59708c; background: #f1f6fc; font-size: 12px; }
.role-examples strong { color: #274766; }
.role-actions { display: flex; justify-content: flex-end; gap: 10px; padding: 16px 26px 20px; border-top: 1px solid #e3eaf3; }
@media (max-width: 980px) { .shell { grid-template-columns: 1fr; } .sidebar { display: none; } .manager { grid-template-columns: 1fr; } .editor-card { position: static; } }
@media (max-width: 640px) { .topbar { height: 60px; padding: 0 16px; } .brand strong { font-size: 22px; } .brand span, .account-label { display: none; } .account-chip { margin-left: auto; max-width: 125px; overflow: hidden; } .account-chip strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .back-link { font-size: 0; } .back-link::after { content: "返回演示"; font-size: 12px; } .workspace { padding: 24px 14px 36px; } .page-heading { display: grid; } .page-actions { width: 100%; } .page-actions button { flex: 1; } .login-card { grid-template-columns: 1fr; margin: 24px auto; } .login-copy, .login-card form { padding: 26px; } .manager { display: block; } .documents-card, .editor-card { padding: 16px; margin-bottom: 14px; } .table-wrap { min-height: 250px; } th:nth-child(3), td:nth-child(3), th:nth-child(4), td:nth-child(4) { display: none; } .preview-dialog { width: calc(100vw - 20px); max-height: 90vh; } .preview-card { max-height: 90vh; } .preview-heading, .preview-body { padding-left: 18px; padding-right: 18px; } .preview-meta { grid-template-columns: 1fr; gap: 12px; padding-left: 18px; padding-right: 18px; } .role-dialog { width: calc(100vw - 20px); } .role-body, .role-actions { padding-left: 18px; padding-right: 18px; } }
