.boot-screen { position:fixed; inset:0; z-index:200; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:20px; padding:30px; color:#f1e4c8; background:#193432; font:22px/1.7 var(--serif-cn); text-align:center; }
.boot-screen button { padding:10px 18px; color:inherit; border:1px solid currentColor; background:none; cursor:pointer; font-size:16px; }
.brand b { max-width:220px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.search-link { font-size:13px; }
.site-header nav { gap:17px; }
.sandbox-banner { position:fixed; z-index:120; right:12px; bottom:12px; padding:6px 10px; color:#9a5b2f; background:#fff3d8; border:1px solid #d1b688; font-size:11px; pointer-events:none; }
.route-bar { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:20px; padding-bottom:19px; border-bottom:1px solid #b9bba6; }
.route-bar label { min-width:0; flex:1; font-size:12px; color:#7c816b; }
.route-bar select { width:100%; display:block; margin-top:7px; padding:8px; color:#2b4d42; background:transparent; border:1px solid #9fab95; min-height:40px; font-size:15px; }
.edit-journey-toggle { flex:none; color:#6b7867; border:1px solid #9ca88e; background:transparent; padding:11px 12px; cursor:pointer; font-size:13px; }
.edit-journey-toggle[aria-pressed="true"] { background:#37574c; color:#fff3d9; }
.route-actions { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px; }
.route-actions button { padding:8px 10px; color:#657460; background:none; border:1px solid #b8bda5; cursor:pointer; font-size:13px; }
.journey-node { grid-template-columns:1fr; padding:0!important; }
.node-edit-actions { display:flex; flex-wrap:wrap; gap:8px; padding:8px 12px 12px; border-top:1px dashed #c3c5ae; }
.node-edit-actions button { color:#6c7b64; background:none; border:1px solid #a6b298; padding:6px 8px; cursor:pointer; font-size:12px; }
.node-prerequisites { font:12px/1.5 var(--sans); color:#8b8e78; }
.journey-node[data-depth="1"],.journey-node[data-depth="2"],.journey-node[data-depth="3"],.journey-node[data-depth="4"] { margin-left:12%!important; width:88%!important; border-left-style:dashed!important; }
.prerequisite-field { margin:5px 0 22px; padding:15px; border:1px solid #c1c4ac; color:#6e7d65; }
.prerequisite-field legend { font-size:12px; line-height:1.6; }
.prerequisite-options { display:flex; flex-direction:column; gap:11px; font-size:14px; }
.prerequisite-options label,.checkbox-row { display:flex; align-items:center; gap:9px; }
.checkbox-row { font-size:14px; }
.form-field input[type="checkbox"] { width:auto; }
.detail-start-node { color:#f4ecd5; background:#527165; border:1px solid #527165; }
.confirm-dialog { border-top:4px solid #a95643; }
.confirm-dialog h2 { font:400 29px/1.4 var(--serif-cn); }
.confirm-message,.restore-summary { white-space:pre-wrap; font-size:16px; line-height:1.75; }
.confirm-options { display:flex; flex-direction:column; gap:12px; margin:22px 0; font-size:14px; line-height:1.6; }
.confirm-options label { display:flex; align-items:flex-start; gap:9px; }
.confirm-options input { margin-top:5px; flex:none; }
.confirm-accept { color:#fff6e2; background:#a14e3d; border:1px solid #a14e3d; }
.confirm-accept:disabled { opacity:.4; cursor:not-allowed; }
.confirm-cancel { color:inherit; border:1px solid #a5ad96; background:none; }
[role="status"] { overflow-wrap:anywhere; }
[data-error="true"],.image-errors,.node-save-status,.category-save-status { color:#a8573e; font-size:14px; line-height:1.6; white-space:pre-wrap; }
.image-upload-field { padding:17px; border:1px dashed #a8b598; transition:background .2s; }
.image-upload-field.drag-active { background:#d9e8d6; border:2px solid #628264; }
.form-image-previews { grid-template-columns:repeat(2,minmax(0,1fr)); }
.form-image-tile { padding:8px; background:#fff8e9; border:1px solid #c5c5ad; }
.form-image-tile>img { background:#e8e5d7; }
.form-image-tile>input { display:block; width:100%; padding:8px; margin:7px 0; border:1px solid #c5c5ad; background:white; color:#495f4c; font-size:14px; }
.photo-edit-controls { display:flex; flex-wrap:wrap; gap:5px; }
.photo-edit-controls button { padding:5px 6px; font-size:12px; background:none; border:1px solid #acb899; color:#6e7d64; cursor:pointer; }
.photo-edit-controls button:disabled { opacity:.35; cursor:default; }
.draft-photo-number { display:block; margin-top:8px; font-size:12px; color:#8c8f79; }
.photo-caption { display:block; margin:9px 5px; color:#7a846d; font-size:13px; line-height:1.5; }
.image-read-error { min-height:100px; color:#9c523d; font-size:14px; padding:20px; }
.record-toolbar>div { display:flex; gap:20px; }
.record-toolbar .delete-record { color:#a65744; opacity:.8; }
.gallery-load-more { display:block; margin:35px auto 0; padding:12px 22px; color:inherit; border:1px solid #98a486; background:none; cursor:pointer; font-size:16px; }
.collection-controls { flex-wrap:wrap; }
.collection-controls .world-filter { flex:1; }
.settings-buttons { display:flex; flex-wrap:wrap; gap:12px; }
.settings-surface p { font-size:15px; line-height:1.7; color:#7f8c74; }
.settings-surface button,.settings-bag-link { padding:10px 14px; min-height:42px; color:#466044; border:1px solid #aebba0; background:transparent; cursor:pointer; font-size:14px; }
.settings-surface .save-node { color:#fff7e2; background:#476344; }
.settings-bag-link { display:inline-block; margin-top:10px; }
.managed-world h3 { font:400 22px var(--serif-cn); margin:20px 0; }
.managed-category { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:15px 0; border-top:1px solid #d0d4ba; }
.managed-category>button { border:0; padding:0; color:#3e5f42; text-align:left; font-size:17px; }
.managed-category>div { display:flex; flex-wrap:wrap; gap:6px; }
.managed-category>div>button { min-height:32px; padding:5px 8px; font-size:12px; }
.storage-note { color:#86917c; font-size:13px; line-height:1.75; }
.danger-zone h2,.danger-zone button { color:#a6533e; }
.bag-surface { max-width:1120px; margin:auto; padding:35px 42px; border:1px solid #c0c3aa; background:#fff8e8; box-shadow:0 18px 55px #18332114; color:#35543d; }
.bag-meta { padding-bottom:24px; border-bottom:1px solid #c6cab3; }
.last-backup { margin:0 0 12px; font-size:16px; line-height:1.7; }
.backup-reminder { font:17px/1.7 var(--serif-cn); color:#8b835f; margin:0; }
.bag-actions { display:grid; grid-template-columns:1fr 1fr; gap:45px; padding:40px 0; }
.bag-actions article>span { color:#b08a54; font:30px var(--serif-cn); }
.bag-actions h2 { font:400 34px var(--serif-cn); margin:15px 0; }
.bag-actions p { font-size:16px; line-height:1.75; color:#76856b; }
.bag-actions button,.bag-actions .upload-button { display:inline-block; padding:12px 22px; color:#fff2d6; background:#476a4c; border:1px solid #476a4c; cursor:pointer; font-size:16px; }
.backup-status { font-size:16px; line-height:1.8; white-space:pre-wrap; }
.global-search-label { display:block; max-width:1100px; margin:0 auto; color:#7f8f73; font-size:14px; }
#global-search { display:block; width:100%; padding:18px 20px; margin-top:12px; font-size:19px; color:#335940; border:1px solid #a4b597; background:#fff9e9; }
.search-count,.search-results { max-width:1100px; margin:24px auto; }
.search-count { font-size:14px; color:#8b977c; }
.search-result { display:block; width:100%; padding:24px 28px; margin-bottom:17px; text-align:left; color:#3d5f41; background:#fff9e9; border:1px solid #bfcaad; cursor:pointer; }
.search-result>span { font-size:12px; letter-spacing:.08em; color:#9b8356; }
.search-result h2 { font:400 26px/1.4 var(--serif-cn); margin:9px 0; }
.search-result p { font-size:15px; line-height:1.7; margin:0; color:#7a8b6d; }
.node-dialog button:disabled,.bag-actions button:disabled { opacity:.5; cursor:wait; }
body[data-time="night"] .bag-surface { background:#1e403e; color:#e5ddc2; border-color:#5a7963; }
body[data-time="night"] .bag-surface p { color:#bdc7ab; }
@media(max-width:1350px) { .date-range { display:none; } }
@media(max-width:800px) {
  .brand b { max-width:130px; }
  .header-tools { gap:12px; }
  .search-link { font-size:12px; }
  .route-bar { align-items:flex-end; }
  .route-bar select { max-width:100%; font-size:14px; }
  .edit-journey-toggle { padding:10px 8px; }
  .managed-category { flex-direction:column; align-items:flex-start; }
  .bag-surface { padding:25px 22px; }
  .bag-actions { grid-template-columns:1fr; gap:30px; }
  .bag-actions article+article { border-top:1px solid #c4cbb0; padding-top:30px; }
  .form-image-previews { grid-template-columns:1fr 1fr; }
  .sandbox-banner { bottom:68px; font-size:10px; }
  .record-toolbar>div { gap:12px; }
  .record-toolbar button { font-size:12px; }
  .confirm-dialog .node-detail-inner { padding:26px 20px; }
  .confirm-options { font-size:14px; }
}
