:root {
  --canvas: #191510; --surface: #26211b; --ink: #f6eee2; --muted: #baad9b;
  --line: #463b2e; --brand: #e5bf8b; --soft: #362d23; --error: #f1a18c;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--canvas); color: var(--ink);
  font: 15px/1.6 -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans", "Noto Sans CJK SC", sans-serif; }
h1 { font-size: 20px; margin: 0; }
h2 { font-size: 15px; margin: 0 0 12px; }
button, input, textarea { font: inherit; color: inherit; }
button { cursor: pointer; border: 0; border-radius: 12px; padding: 10px 22px; }
button:focus-visible, input:focus-visible, textarea:focus-visible, .drop:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.primary { background: var(--brand); color: #342313; font-weight: 600; }
.primary:disabled { background: var(--line); color: var(--muted); cursor: default; }
.ghost { background: transparent; color: var(--muted); }
.muted { color: var(--muted); font-size: 13px; }
.error { color: var(--error); min-height: 1.6em; margin: 6px 0; font-size: 13px; }
.note { color: var(--muted); font-size: 13px; margin: 8px 0 0; min-height: 1.6em; }
.note.warn { color: var(--error); }
input, textarea { width: 100%; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; }
textarea { resize: vertical; }
label { display: block; font-size: 13px; color: var(--muted); margin: 14px 0 6px; }
.login { display: grid; place-items: center; min-height: 100vh; padding: 16px; }
.login-card { width: 100%; max-width: 340px; background: var(--surface); border: 1px solid var(--line); border-radius: 20px; padding: 28px; }
.login-card .primary { width: 100%; }
.bar { display: flex; align-items: center; gap: 16px; padding: 16px 24px; border-bottom: 1px solid var(--line); background: var(--surface); }
.bar .muted { margin-left: auto; }
.layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 32px; max-width: 980px; margin: 0 auto; padding: 24px; align-items: start; }
.field { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 20px; margin-bottom: 16px; }
.drop { display: block; margin: 0; padding: 26px 16px; text-align: center; border: 1.5px dashed var(--line); border-radius: 14px; cursor: pointer; color: var(--ink); font-size: 15px; }
.drop.over { border-color: var(--brand); background: var(--soft); }
.drop small { display: block; color: var(--muted); margin-top: 4px; }
.tabs { display: flex; flex-wrap: wrap; gap: 6px; }
.tabs button { padding: 6px 12px; background: var(--soft); color: var(--muted); font-size: 13px; border-radius: 9px; }
.tabs button[aria-selected="true"] { background: var(--brand); color: #342313; }
.tabs button.empty::after { content: " 未填"; opacity: .7; }
.actions { display: flex; align-items: center; gap: 14px; }
.preview-wrap { position: sticky; top: 16px; }
.preview-wrap .muted { margin: 0 0 8px; }
.phone { width: 300px; border: 8px solid #1c1511; border-radius: 40px; overflow: hidden; background: #fbf4e9; }
.hero { position: relative; height: 456px; background: #14100d center / cover no-repeat; }
.shade { position: absolute; inset: 0; background: linear-gradient(#090705 0%, transparent 28%, transparent 55%, #090705e0 100%); opacity: .75; }
.copy { position: absolute; left: 20px; right: 20px; bottom: 36px; color: #fff; }
.p-title { margin: 0; font-size: 20px; line-height: 1.28; font-weight: 700; white-space: pre-line; text-shadow: 0 0 12px #0009; }
.p-subtitle { margin: 6px 0 0; font-size: 10.5px; color: #ffffffd6; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-shadow: 0 0 10px #0009; }
.dock-hint { height: 64px; background: var(--surface); }
.destination-preview.phone { border: 0; border-radius: 20px; }
.hero.destination { height: auto; aspect-ratio: 232 / 154; }
.destination .shade { background: linear-gradient(transparent 28%, #17120fdd); opacity: 1; }
.destination .copy { left: 16px; right: 16px; bottom: 18px; padding-right: 42px; }
.destination .p-title { font-size: 24px; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.destination .p-subtitle { font-size: 12px; line-height: 1.35; white-space: normal; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.destination #pArrow { position: absolute; right: 0; bottom: 0; display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid #ffffff40; border-radius: 50%; background: #ffffff24; font-size: 19px; margin: 0; }
@media (max-width: 760px) { .layout { grid-template-columns: minmax(0, 1fr); } .preview-wrap { position: static; } .phone { margin: 0 auto; } }

[hidden] { display: none !important; }
fieldset { min-width: 0; border: 0; padding: 0; margin: 0; }
button:disabled { cursor: default; opacity: .55; }
.bar small { color: var(--brand); font-size: 11px; letter-spacing: .08em; }
.sections { display: flex; gap: 6px; padding: 20px 24px 0; max-width: 1280px; margin: auto; }
.sections button { background: transparent; color: var(--muted); border-radius: 8px; }
.sections button[aria-current="page"] { color: var(--ink); background: var(--soft); }
.workspace { max-width: 1280px; margin: auto; padding: 24px; display: flex; gap: 24px; align-items: flex-start; }
.form { flex: 1; min-width: 0; } .collection { width: 250px; flex-shrink: 0; }
.preview-wrap { width: 300px; flex-shrink: 0; } .preview-heading, .list-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.preview-heading button,.list-heading button { padding: 5px 8px; font-size:12px; }
.list-heading h2 { margin:0; } .card-row { border:1px solid transparent; border-radius:12px; display:flex; margin-bottom:6px; align-items:center; padding:5px; }
.card-row.selected { background:var(--surface); border-color:var(--line); }
.card-select { display:flex; gap:10px; text-align:left; align-items:center; flex:1; min-width:0; padding:5px; background:none; font-size:13px; }
.card-select img { width:42px; height:58px; object-fit:cover; border-radius:7px; }
.card-select span { overflow:hidden; } .card-select small { display:block; color:var(--muted); font-size:11px; margin-top:3px; }
.reorder { display:grid; } .reorder button { border-radius:5px; font-size:15px; padding:0 6px; color:var(--muted); background:none; }
.option-line { display:flex; align-items:center; flex-wrap:wrap; gap:12px; } .option-line label { margin:0; }
select { background:var(--soft); color:var(--ink); border:1px solid var(--line); padding:9px; border-radius:8px; font:inherit; }
.check { display:flex; align-items:center; gap:7px; } .check input { width:17px; height:17px; accent-color:var(--brand); }
.phone { background:var(--canvas); border-color:var(--line); width:100%; }
.preview-tag { position:absolute; top:25px; left:18px; border-radius:20px; padding:4px 10px; color:#342313; background:#f6eee2df; font-size:10px; }
#previewArticle { height:520px; overflow-y:auto; position:relative; }
#pImage { width:100%; height:210px; object-fit:cover; }
.article-copy { padding:20px 18px; } .article-copy small { color:var(--brand); font-size:10px; }
.article-copy h2 { font-size:21px; line-height:1.5; margin:10px 0 16px; }
#pBody { white-space:pre-wrap; color:var(--muted); font-size:12px; line-height:1.9; }
.preview-cta { position:sticky; bottom:0; padding:14px; background:var(--brand); color:#342313; text-align:center; font-size:12px; }
.actions { position:sticky; bottom:0; padding:16px 0; background:var(--canvas); z-index:1; }
#status { overflow-wrap:anywhere; }
#heroAction select { width:100%; }
.catalog-status { display:flex; align-items:center; gap:8px; }
.catalog-status button { padding:4px 8px; }
.chosen-stay { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:16px; padding:14px; border:1px solid var(--line); border-radius:12px; background:var(--soft); }
.chosen-stay strong { font-size:14px; font-weight:500; }
.chosen-stay small { display:block; color:var(--muted); margin-top:4px; }
.chosen-stay button { padding:5px 8px; flex-shrink:0; }
.hotel-results { max-height:230px; overflow:auto; }
.hotel-result { display:block; width:100%; background:none; text-align:left; padding:12px; border-radius:8px; border-bottom:1px solid var(--line); font-size:14px; }
.hotel-result:hover,.hotel-result:focus-visible { background:var(--soft); }
.hotel-result small { display:block; color:var(--muted); font-size:12px; margin-top:3px; }
.target-preview { color:var(--brand); font-size:13px; padding:12px 14px; border:1px solid var(--line); border-radius:12px; }
#pArrow { display:block; margin-top:10px; font-size:21px; line-height:1; }
@media(max-width:1100px){.workspace{flex-wrap:wrap}.collection{width:100%}#items{display:flex;overflow:auto}.card-row{min-width:210px;max-width:230px}.form{flex-basis:55%}}
@media(max-width:700px){.workspace{display:block;padding:16px}.preview-wrap{position:static;width:300px;max-width:100%;margin:24px auto}.sections{padding:16px 8px 0}.sections button{padding:9px 12px}.bar{padding:12px 16px;flex-wrap:wrap;gap:8px}.bar h1{font-size:18px}.bar .muted{order:3;width:100%;margin:0}.bar #logout{margin-left:auto}.field{padding:16px}.actions{flex-wrap:wrap}.collection{margin-bottom:18px}}
.rich-heading,.block-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.rich-heading h3{font-size:16px;margin:20px 0 8px}.edit-block{border:1px solid var(--line);border-radius:12px;padding:16px;margin:14px 0;background:var(--canvas)}.block-header strong{font-size:12px;color:var(--brand);font-weight:500}.block-controls{display:flex;gap:2px}.block-controls button{padding:4px 7px;font-size:12px}.block-thumbnail{display:block;width:100%;max-height:210px;object-fit:cover;margin:14px 0;border-radius:8px}.block-toolbar{display:flex;gap:8px;flex-wrap:wrap;padding:12px 0}.block-toolbar button{border:1px solid var(--line);padding:8px 12px;font-size:13px}.block-insert{margin-top:14px;font-size:12px;width:100%;color:var(--muted)}.edit-block input[type=file]{font-size:12px;padding:10px}.edit-block textarea{line-height:1.8;font-size:14px}.story-figure{margin:24px -6px}.story-figure img{display:block;width:100%;object-fit:cover;border-radius:8px}.story-figure figcaption{font-size:10px;line-height:1.7;color:var(--muted);margin:8px 6px 0}#pBody h3{font-size:17px;font-weight:500;color:var(--ink);line-height:1.6;margin:28px 0 14px}#pBody p{margin:0 0 18px;white-space:pre-wrap}#pBody blockquote{margin:24px 0;padding:4px 0 4px 16px;border-left:2px solid var(--brand);color:var(--brand);font-size:16px;line-height:1.8}#pBody .story-note{padding:16px;background:var(--soft);border-radius:8px;font-size:11px;line-height:1.9}.article-copy{padding-bottom:8px}.preview-cta{border-radius:12px;margin:0 12px 12px;box-shadow:0 -8px 20px var(--canvas)}
@media (min-width: 1101px) {
  .collection { position: sticky; top: 16px; max-height: calc(100vh - 32px); overflow-y: auto; scrollbar-width: thin; }
}
