button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:5px}
/* Search tags share the category column and keep multiple selections. */
form.search-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,200px) minmax(180px,240px);grid-template-areas:"query type category" "author author tags" ". . submit";gap:18px 14px}
.search-filters .search-query{grid-area:query;min-width:0}
.search-filters .search-type{grid-area:type}
.search-filters .search-category{grid-area:category}
.search-filters .search-author{grid-area:author}
.search-filters .search-submit{grid-area:submit;justify-self:end}
form.search-filters label,form.search-filters input,form.search-filters select{min-width:0;width:100%}
.search-tag-filter[hidden]{display:none}
.search-tag-filter{grid-area:tags;min-width:0;display:grid;gap:7px;font-weight:700}
.search-tag-menu{position:relative;font-weight:400}
.search-tag-menu summary{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:46px;padding:10px 12px;cursor:pointer;list-style:none;border:2px solid #0c100b;background:#555e50;box-shadow:inset 2px 2px #899280,inset -2px -3px #30382b,0 3px #0b0e0a}
.search-tag-menu summary::-webkit-details-marker{display:none}
.search-tag-menu summary::after{content:'▾';flex-shrink:0}
.search-tag-menu[open] summary::after{content:'▴'}
.search-tag-menu summary:focus-visible{outline:3px solid #fff1a6;outline-offset:4px}
form.search-filters .search-tag-menu fieldset{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:30;min-width:0;max-height:300px;overflow:auto;margin:0;padding:10px;background:var(--surface);border:1px solid var(--line);box-shadow:0 8px 20px #0008}
.search-tag-menu .tag-picker{display:grid;gap:4px}
form.search-filters .search-tag-menu label{display:flex;gap:9px;align-items:center;padding:8px 2px;overflow-wrap:anywhere}
#main .search-tag-menu input[type=checkbox]{width:18px;min-width:18px;height:18px;min-height:18px;padding:0;margin:0;flex:0 0 18px;box-shadow:none;accent-color:#8cb25c}
#main .tag-editor-form input[type=checkbox]{display:inline-block;width:20px;height:20px;min-height:20px;padding:0;margin:0;box-shadow:none;accent-color:#8cb25c}
.tag-delete-confirmation{margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}
.tag-delete-confirmation summary{cursor:pointer;color:var(--danger);width:fit-content}
.tag-delete-confirmation p{margin:18px 0;max-width:70ch;color:var(--muted)}
#main .tag-delete-confirmation .danger-button{color:var(--danger);border-color:#734641}
@media(max-width:800px){form.search-filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"query query" "type category" "author tags" ". submit"}}
@media(max-width:520px){form.search-filters{grid-template-columns:minmax(0,1fr);grid-template-areas:"query" "type" "category" "tags" "author" "submit"}.search-filters .search-submit{width:100%}}
.community-page{max-width:1250px;margin:auto;padding:55px 1cm 80px}.community-page.narrow{width:calc(100% - 2cm);max-width:2100px;padding-left:0;padding-right:0}.chronicle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.chronicle-card{display:flex;flex-direction:column;margin:0}.chronicle-card h2{font-size:1.5rem;margin-top:14px}.chronicle-card p{color:var(--muted)}.chronicle-thumb{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:6px;margin-bottom:20px}.chronicle-meta{display:flex;justify-content:space-between;gap:24px;align-items:center;color:var(--muted);font-size:.75rem}.chronicle-author{display:flex;align-items:center;gap:12px;min-width:0}.chronicle-author-avatar{width:36px;height:36px;position:relative;display:grid;place-items:center;flex:0 0 36px;background:var(--surface2);color:var(--accent);overflow:hidden}.chronicle-author-avatar img{position:absolute;inset:0;width:36px;height:36px;object-fit:cover;image-rendering:pixelated}.chronicle-meta time{margin-left:auto;white-space:nowrap}.chronicle-link{color:var(--accent);font-size:.875rem;margin-top:auto;padding-top:20px}.tag-list{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0}.actions.compact{margin-top:16px;gap:8px}.actions.compact .button,.actions.compact button{padding:9px 12px}.actions.compact form{margin:0}.danger-button{color:var(--danger);border-color:#734641}.chronicle-detail{max-width:960px;margin:auto;padding:65px 1cm 100px}.chronicle-detail>header{max-width:760px;margin-bottom:35px}.chronicle-detail h1{font-size:clamp(2.8rem,6vw,5rem)}.chronicle-cover{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:8px;margin:10px 0 38px}.chronicle-body{max-width:760px;font:1.08rem/1.85 Georgia,serif;white-space:normal;overflow-wrap:anywhere}.editor-form{display:grid;gap:18px}.form-field{display:grid;gap:8px}.form-field label,.editor-form>p>label{display:block;color:var(--muted);font-size:.875rem;margin-bottom:7px}.form-field>label,.editor-form>p>label{color:var(--text);font-size:1rem;font-weight:700}.form-field input,.form-field textarea,.form-field select,.editor-form>p>input{width:100%}textarea{border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--text);padding:12px;resize:vertical}.form-field ul{list-style:none;padding:0;margin:0;display:flex;gap:12px;flex-wrap:wrap}.form-field ul label{display:flex;align-items:center;gap:7px;color:var(--text)}.field-error,.errorlist{color:var(--danger);font-size:.8rem;list-style:none;padding:0}.console-main .actions{margin-top:0}
@media(max-width:760px){.community-page,.chronicle-detail{padding:35px 20px 65px}.chronicle-grid{grid-template-columns:1fr}.actions.compact{align-items:stretch}.actions.compact form,.actions.compact button{width:100%}}
.field-label{display:block;font-weight:700}.editor-toolbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:10px;border:1px solid var(--line);border-bottom:0;border-radius:7px 7px 0 0;background:var(--surface2)}.editor-toolbar button,.editor-toolbar select{min-height:38px;padding:7px 10px}.editor-toolbar button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.rich-editor{min-height:420px;border:1px solid var(--line);border-radius:0 0 7px 7px;background:var(--bg);padding:22px;font:1.05rem/1.75 Georgia,serif}.rich-editor:focus-within{outline:2px solid var(--accent);outline-offset:2px}.rich-editor .ProseMirror{min-height:370px;outline:0}.rich-editor .ProseMirror>p:first-child{margin-top:0}.rich-editor .ProseMirror-selectednode{outline:2px solid var(--accent)}.rich-editor-node{border:1px solid var(--line);border-radius:7px;padding:14px;margin:18px 0;background:var(--surface2)}.rich-editor-node img{display:block;max-width:100%;max-height:420px;margin:auto}.rich-editor-node-label{display:block;color:var(--muted);font:700 .75rem/1.4 sans-serif;text-transform:uppercase;letter-spacing:.08em}.editor-status{min-height:1.4em}.editor-dialog{width:min(560px,calc(100% - 32px));color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:24px}.editor-dialog-wide{width:min(850px,calc(100% - 32px))}.editor-dialog::backdrop{background:#000b}.editor-dialog form{display:grid;gap:14px}.dialog-close{position:absolute;right:12px;top:12px;border:0;font-size:1.5rem}.editor-media-grid,.reference-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-height:330px;overflow:auto}.media-choice,.reference-choice{display:grid;gap:7px;text-align:left;padding:8px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--text)}.media-choice img{width:100%;aspect-ratio:16/9;object-fit:cover}.media-choice.selected,.reference-choice.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.reference-choice{grid-template-columns:auto 1fr}.reference-choice p{grid-column:2;margin:0;color:var(--muted);font-size:.8rem}.rich-image,.sketchfab-embed{margin:30px 0}.rich-image img{display:block;max-width:100%;height:auto;margin:auto;border-radius:7px}.rich-image figcaption,.sketchfab-embed figcaption{text-align:center;color:var(--muted);font-size:.9rem;margin-top:9px}.sketchfab-frame{position:relative;aspect-ratio:16/9}.sketchfab-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.content-reference,.content-reference-unavailable{display:grid;gap:6px;margin:24px 0;padding:16px;border-left:4px solid var(--accent);background:var(--surface2)}.content-reference>div{color:var(--muted);font-size:.75rem;text-transform:uppercase}.content-reference>a{font-weight:700;color:var(--accent)}.content-reference p{margin:0;color:var(--muted)}.chronicle-backlinks{max-width:760px;margin-top:55px;padding-top:25px;border-top:1px solid var(--line)}.chronicle-backlinks ul{list-style:none;padding:0}.chronicle-backlinks li{display:flex;justify-content:space-between;gap:20px;padding:10px 0}.chronicle-backlinks span{color:var(--muted)}
@media(max-width:760px){.editor-media-grid,.reference-results{grid-template-columns:1fr}.editor-toolbar{align-items:stretch}.rich-editor{min-height:330px;padding:14px}.rich-editor .ProseMirror{min-height:280px}}
.poi-filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:24px}.poi-filters label{font-weight:700}.poi-filters select{min-width:220px}.poi-coordinates{color:var(--muted);font-family:monospace}.poi-detail>.tag-list{margin-top:24px}.marker-settlement,.marker-fortress,.marker-temple,.marker-monument,.marker-road,.marker-ruin,.marker-nature,.marker-conflict,.marker-other{border-left:3px solid var(--accent)}
.search-filters{display:flex;align-items:end;gap:14px;flex-wrap:wrap}.search-filters label{display:grid;gap:7px;font-weight:700}.search-filters input,.search-filters select{min-width:180px}.search-filters .search-query{flex:1;min-width:min(100%,300px)}.search-filters .search-query input{width:100%}.search-filters fieldset{border:1px solid var(--line);padding:10px;max-width:100%}.search-filters legend{padding:0 5px;font-size:.8rem}.tag-picker{display:flex;gap:8px;flex-wrap:wrap}.tag-picker label{display:flex;align-items:center;font-size:.8rem;font-weight:400}.tag-picker input{min-width:auto}.search-results{display:grid;gap:14px}.search-result{margin:0}.search-result h2{margin-bottom:9px}.search-result p:not(.eyebrow){color:var(--muted);margin-bottom:8px}
.editor-dialog .dialog-content{display:grid;gap:14px}
/* Tags / lieux associés as toggle-button chips instead of raw checkboxes. */
.chip-field > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.chip-field > div > div {
  margin: 0;
}

.chip-field > div label {
  display: inline-flex;
  align-items: center;
  border: 2px solid #0c100b;
  border-radius: 0;
  padding: 10px 14px;
  background: #555e50;
  color: #f7f5ee;
  box-shadow: inset 2px 2px #899280, inset -2px -3px #30382b, 0 3px #0b0e0a;
  text-shadow: 2px 2px #0008;
  font-weight: 400;
  font-size: .8rem;
  line-height: 1;
  cursor: pointer;
  transition: background-color .1s;
}

.chip-field > div label:hover {
  background: #6c7b60;
  border-color: #e2ebbc;
  color: #fff;
}

.chip-field > div input[type=checkbox] {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.chip-field > div label:has(input:checked) {
  background: #40502e;
  color: #f4ffde;
  border-color: transparent;
}

.chip-field > div label:has(input:focus-visible) {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.rich-editor .ProseMirror ul,
.chronicle-body ul {
  display: block;
  list-style: disc outside;
  margin: 1em 0;
  padding-left: 2.25em;
}

.rich-editor .ProseMirror ol,
.chronicle-body ol {
  display: block;
  list-style: decimal outside;
  margin: 1em 0;
  padding-left: 2.25em;
}

.rich-editor .ProseMirror li,
.chronicle-body li {
  display: list-item;
  margin: .35em 0;
}

.rich-editor .ProseMirror li > p,
.chronicle-body li > p {
  margin: 0;
}

.rich-editor .ProseMirror ul ul,
.chronicle-body ul ul {
  list-style-type: circle;
}

/* Wide Chronicle layout and controlled image flow. */
.editor-toolbar {
  position: sticky;
  top: 8px;
  z-index: 8;
  box-shadow: 0 8px 18px #0008;
}

form.editor-form .rich-editor-field .editor-toolbar button.editor-command-clear {
  border-color: var(--accent);
  background: #40502e;
  color: #f4ffde;
  font-weight: 700;
}

.chronicle-detail {
  box-sizing: border-box;
  width: calc(100% - 48px);
  max-width: 1800px;
  padding-right: 0;
  padding-left: 0;
}

.chronicle-detail > header,
.chronicle-body,
.chronicle-backlinks {
  max-width: none;
}

.chronicle-body,
.rich-editor .ProseMirror {
  display: flow-root;
}

.rich-clear {
  clear: both;
  height: 0;
}

.rich-image--center {
  clear: both;
  width: min(100%, 1100px);
  margin-right: auto;
  margin-left: auto;
}

.rich-image--left,
.rich-image--right {
  width: min(44%, 720px);
  margin-top: .4em;
  margin-bottom: 24px;
}

.rich-image--left {
  float: left;
  margin-right: 32px;
  margin-left: 0;
}

.rich-image--right {
  float: right;
  margin-right: 0;
  margin-left: 32px;
}

.rich-image img {
  width: 100%;
}

.chronicle-body > h2,
.chronicle-body > h3,
.chronicle-body > blockquote,
.chronicle-body > hr,
.chronicle-body > ul,
.chronicle-body > ol,
.chronicle-body > .content-reference,
.chronicle-body > .content-reference-unavailable,
.chronicle-body > .sketchfab-embed {
  clear: both;
}

.rich-editor-image-node {
  box-sizing: border-box;
}

.rich-editor-image-node--center {
  clear: both;
  width: min(100%, 900px);
  margin-right: auto;
  margin-left: auto;
}

.rich-editor-image-node--left,
.rich-editor-image-node--right {
  width: min(44%, 640px);
}

.rich-editor-image-node--left {
  float: left;
  margin-right: 24px;
  margin-left: 0;
}

.rich-editor-image-node--right {
  float: right;
  margin-right: 0;
  margin-left: 24px;
}

.image-alignment-controls {
  display: flex;
  justify-content: flex-end;
  gap: 6px;
  margin: 8px 0 12px;
}

.image-alignment-controls button {
  padding: 6px 9px;
  font: 700 .75rem/1 sans-serif;
}

.image-alignment-controls button[aria-pressed=true] {
  border-color: var(--accent);
  color: var(--accent);
}

.rich-editor .ProseMirror > .rich-editor-node:not(.rich-editor-image-node),
.rich-editor .ProseMirror > blockquote,
.rich-editor .ProseMirror > h2,
.rich-editor .ProseMirror > h3,
.rich-editor .ProseMirror > hr,
.rich-editor .ProseMirror > ul,
.rich-editor .ProseMirror > ol {
  clear: both;
}

.rich-editor-clear {
  clear: both;
  position: relative;
  min-height: 28px;
  margin: 20px 0;
  border-top: 2px dashed var(--accent);
  color: var(--accent);
  text-align: center;
  cursor: default;
}

.rich-editor-clear span {
  position: relative;
  top: -11px;
  display: inline-block;
  padding: 2px 10px;
  background: var(--bg);
  font: 700 .75rem/1.4 sans-serif;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.sketchfab-embed,
.content-reference,
.content-reference-unavailable {
  clear: both;
}

.comments { clear: both; width: 100%; max-width: none; margin: 56px 0 0; }
.comment-list { padding: 0; list-style: none; }
.comment { position: relative; margin: 16px 0; padding: 20px; }
.comment > header { display: flex; justify-content: space-between; gap: 16px; align-items: center; }
.comment > p { white-space: normal; overflow-wrap: anywhere; }
.comment-form { display: grid; gap: 12px; margin-top: 20px; }
.comment-form textarea, .comment-edit textarea { box-sizing: border-box; width: 100%; }
.comment-owner-actions { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.comment-owner-actions form { margin: 0; }
.comment-action-button { cursor: pointer; border: 1px solid var(--line); border-radius: 4px; background: var(--surface2); color: var(--muted); padding: 6px 9px; font: 700 .72rem/1.2 sans-serif; text-transform: uppercase; letter-spacing: .04em; }
.comment-action-button:hover { border-color: var(--accent); color: var(--accent); }
.comment-delete:hover { border-color: var(--danger); color: var(--danger); }
.comment-edit-form { clear: both; }

@media (max-width: 820px) {
  .chronicle-detail {
    width: 100%;
    padding-right: 20px;
    padding-left: 20px;
  }

  .rich-image--left,
  .rich-image--right,
  .rich-image--center,
  .rich-editor-image-node--left,
  .rich-editor-image-node--right,
  .rich-editor-image-node--center {
    float: none;
    clear: both;
    width: 100%;
    max-width: 100%;
    margin-right: auto;
    margin-left: auto;
  }
}
