:root{--green:#225346;--green2:#2f6b5a;--beige:#eadfca;--paper:#f2e7d2;--brown:#211b17;--brown2:#2a231e;--brown3:#332a24;--line:#4a3b31;--muted:#9e9283;--danger:#b74f4f;--shadow:0 14px 42px rgba(0,0,0,.36)}
*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:Inter,Segoe UI,Arial,sans-serif;background:#171310;color:var(--beige);overflow:hidden}button,input,select,textarea{font:inherit}.hidden{display:none!important}.muted{color:var(--muted)}.error{color:#df8b8b;min-height:1.1em;font-size:.78rem}.eyebrow{font-size:.61rem;letter-spacing:.16em;color:#9fb8b1;font-weight:900;text-transform:uppercase}.panel-help{font-size:.68rem;line-height:1.35;color:#8f8375;margin:4px 0 10px}.auth-screen{position:fixed;inset:0;display:grid;place-items:center;background:radial-gradient(circle at 50% 35%,#33271f,#171310 58%);z-index:3000}.auth-card{width:min(420px,calc(100% - 30px));padding:30px;border:1px solid var(--line);border-radius:15px;background:#211b17;box-shadow:var(--shadow)}.auth-card h1{font-family:Georgia,serif;font-size:2.4rem;margin:0}.brand-mark{width:55px;height:55px;border-radius:13px;display:grid;place-items:center;background:var(--green);color:var(--beige);font-family:Georgia,serif;font-weight:900;letter-spacing:.05em;margin-bottom:18px}.brand-mark.small{width:37px;height:37px;border-radius:9px;margin:0;font-size:.8rem}.auth-card form,.admin-form,.point-form{display:grid;gap:12px}.auth-card label,.admin-form label,.point-form label{display:grid;gap:6px;font-size:.78rem;color:#b9ad9b;font-weight:700}.auth-card input,.admin-form input,.admin-form select,.point-form input,.point-form select,.point-form textarea,.inline-form input,.relation-form select,.relation-form input,.search-wrap input{width:100%;border:1px solid var(--line);background:#171310;color:var(--beige);padding:11px 12px;border-radius:9px;outline:none}.auth-card input:focus,.admin-form input:focus,.point-form input:focus,.point-form select:focus,.point-form textarea:focus,.search-wrap input:focus,.relation-form select:focus{border-color:#4c7c70;box-shadow:0 0 0 3px rgba(34,83,70,.18)}.btn{border:1px solid var(--line);background:#332a24;color:var(--beige);padding:9px 13px;border-radius:8px;font-weight:750;cursor:pointer}.btn:hover{background:#40352d}.btn.primary{background:var(--green);border-color:#356b5d}.btn.primary:hover{background:var(--green2)}.btn.danger{background:transparent;border-color:rgba(183,79,79,.5);color:#e6a0a0}.btn.full{width:100%}.btn.small{padding:7px 10px;font-size:.72rem}.icon-btn,.text-btn{border:0;background:transparent;color:var(--beige);padding:6px;cursor:pointer}.icon-btn{font-size:1.25rem}.text-btn{font-size:.72rem;color:#b6cfc8;font-weight:800}.inline-link{text-decoration:none;display:inline-block}.app{height:100%;display:grid;grid-template-rows:58px 1fr}.topbar{display:flex;align-items:center;gap:12px;padding:0 14px;border-bottom:1px solid var(--line);background:#1c1714;z-index:500}.carte-nav{display:flex;align-items:center;gap:6px;flex:1;min-width:0;overflow:auto}.carte-pill{border:1px solid var(--line);background:transparent;color:#b9ad9b;border-radius:99px;padding:6px 12px;font-size:.74rem;font-weight:800;cursor:pointer;white-space:nowrap}.carte-pill.on{background:#225346;border-color:#356b5d;color:#eadfca}.carte-add{flex:none;width:32px;height:32px;border:1px solid #356b5d;border-radius:8px;background:#2f6b5a;color:#eadfca;font-size:1.15rem;line-height:1;cursor:pointer}.carte-add:hover{background:#225346}.carte-overlay{position:fixed;inset:0;z-index:2800;display:grid;place-items:center;background:rgba(23,19,16,.62);opacity:0;transition:opacity .35s ease}.carte-overlay.show{opacity:1}.carte-dialog{width:min(420px,calc(100% - 32px));padding:28px;border:1px solid var(--line);border-radius:14px;background:#211b17;box-shadow:var(--shadow);display:grid;gap:14px}.carte-dialog label{display:grid;gap:8px;font-size:.84rem;color:#b9ad9b;font-weight:700}.carte-dialog input{width:100%;border:1px solid var(--line);background:#171310;color:var(--beige);padding:12px;border-radius:9px;outline:none}.carte-dialog input:focus{border-color:#4c7c70;box-shadow:0 0 0 3px rgba(34,83,70,.18)}.carte-delete{flex:none}.carte-body{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:16px}.add-cat{width:100%;margin:6px 0}.tree{display:grid;gap:6px}.tree-block{display:grid;gap:4px}.tree-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center;padding:6px 8px;border-radius:8px;background:#2a231e}.tree-row.off{opacity:.55}.tree-name{min-width:0;border:0;background:transparent;color:inherit;text-align:left;font-weight:800;font-size:.8rem;padding:0;cursor:pointer}.tree-name small{display:block;color:#8f8375;font-weight:600;font-size:.64rem}.tree-name.static{cursor:default}.tree-actions{display:flex;align-items:center;gap:4px}.tree-children{display:grid;gap:4px;margin:0 0 4px 10px}.tree-row form{display:flex;gap:4px;align-items:center}.tree-row form input{flex:1;min-width:0;border:1px solid var(--line);background:#171310;color:var(--beige);padding:6px 8px;border-radius:7px}.mini-btn.off,.mini-btn.disabled{color:#6e655c}.mini-btn.disabled{pointer-events:none;opacity:.5}.icon-btn.disabled{opacity:.35;pointer-events:none;color:#6e655c}.confirm-modal{position:fixed;inset:0;z-index:4200;display:grid;place-items:center;background:rgba(23,19,16,.62)}.confirm-card{width:min(320px,calc(100% - 32px));padding:22px;border:1px solid var(--line);border-radius:14px;background:#211b17;box-shadow:var(--shadow);display:grid;gap:14px}.confirm-card p{margin:0;font-family:Georgia,serif;font-size:1.35rem;text-align:center}.brand{display:flex;align-items:center;gap:10px}.brand>div:last-child{display:flex;flex-direction:column;line-height:1}.brand strong{font-family:Georgia,serif;font-size:.95rem}.brand span{font-size:.6rem;letter-spacing:.2em;color:#9f927e;margin-top:4px}.top-actions{display:flex;align-items:center;gap:8px}.search-wrap{position:relative;width:min(330px,29vw)}.search-wrap input{padding:9px 34px 9px 11px;background:#15110f}.search-wrap span{position:absolute;right:12px;top:7px;color:#8e8477}.user-chip{border-left:1px solid var(--line);padding-left:11px;margin-left:3px;display:grid}.user-chip span{font-size:.78rem;font-weight:800}.user-chip small{text-transform:uppercase;color:#8f8374;font-size:.57rem;letter-spacing:.1em}.workspace{min-height:0;display:grid;grid-template-columns:265px minmax(340px,1fr) 380px}.sidebar{background:rgba(33,27,23,.97);padding:16px;min-width:0;overflow:auto}.left-panel{border-right:1px solid var(--line)}.detail-panel{border-left:1px solid var(--line)}.panel-head,.detail-head,.section-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.panel-head h2,.detail-head h2{margin:2px 0 0;font-family:Georgia,serif;font-size:1.35rem}.section-title h3{margin:0}.section-title small{display:block;color:#8f8375;font-size:.65rem;margin-top:3px}.category-list,.group-list{display:grid;gap:5px;margin-top:10px}.category-row{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:7px;padding:7px 8px;border-radius:8px}.category-row:hover,.group-row:hover{background:#2b231e}.category-dot{width:20px;height:20px;border-radius:6px;display:grid;place-items:center;font-size:.7rem;color:#fff}.category-row label{display:flex;align-items:center;gap:8px;font-size:.81rem;cursor:pointer}.category-count{font-size:.66rem;color:#887d70}.group-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;padding:7px;border-radius:8px;border:1px solid transparent}.group-row.active{border-color:rgba(183,154,103,.45);background:#2d251f}.group-color{width:10px;height:28px;border-radius:8px}.group-main{min-width:0}.group-main button{display:block;width:100%;padding:0;border:0;background:transparent;color:var(--beige);text-align:left;cursor:pointer;font-weight:800;font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-main small{color:#8d8173;font-size:.62rem}.group-actions{display:flex;align-items:center;gap:2px}.group-actions input{accent-color:var(--green)}.solo-btn{border:1px solid var(--line);background:#201a17;color:#c8b89d;border-radius:6px;padding:4px 6px;font-size:.62rem;cursor:pointer}.solo-btn.on{background:#614e2c;border-color:#8c7342}.divider{height:1px;background:var(--line);margin:17px 0}.switch-row,.switch-field{display:flex!important;align-items:center!important;justify-content:space-between!important;grid-template-columns:1fr auto!important;gap:12px!important;font-size:.78rem!important;color:#bfb29f!important;margin:8px 0}.switch-row input,.switch-field input{width:auto!important;accent-color:var(--green)}.stats{display:grid;grid-template-columns:1fr 1fr;gap:7px}.stat{padding:9px;background:#2a231e;border-radius:8px}.stat strong{display:block;font-size:1.2rem}.stat span{font-size:.62rem;color:#95897a;text-transform:uppercase;letter-spacing:.08em}.map-shell{position:relative;min-width:0;background:#101010}.map-shell:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:40px 40px;pointer-events:none;z-index:0}#map{position:absolute;inset:0;background:#101010}.leaflet-container{font-family:inherit}.leaflet-control-zoom a{background:#25201c!important;color:var(--beige)!important;border-color:var(--line)!important}.leaflet-control-attribution{display:none}.poi-marker{width:24px;height:24px;border-radius:50% 50% 50% 2px;transform:rotate(-45deg);display:grid;place-items:center;border:2px solid rgba(255,255,255,.78);box-shadow:0 3px 11px rgba(0,0,0,.55)}.poi-marker span{transform:rotate(45deg);font-size:.65rem;color:#fff}.poi-marker.major{width:31px;height:31px;border-radius:9px;transform:rotate(0);border-width:3px}.poi-marker.major span{transform:none;font-size:.85rem}.poi-marker.hidden-poi{opacity:.4;filter:grayscale(.6)}.poi-marker.group-hit{box-shadow:0 0 0 5px rgba(234,223,202,.26),0 4px 14px rgba(0,0,0,.7)}.placement-banner,.solo-banner{position:absolute;z-index:450;top:14px;left:50%;transform:translateX(-50%);padding:10px 14px;border:1px solid #3b7565;background:#1d3f36;border-radius:9px;font-size:.76rem;font-weight:800;box-shadow:var(--shadow)}.solo-banner{top:58px;background:#5c472a;border-color:#8d6f42}.map-hud{position:absolute;bottom:12px;left:12px;right:12px;z-index:400;display:flex;justify-content:space-between;pointer-events:none}.map-hud span{font-size:.64rem;background:rgba(23,19,16,.82);border:1px solid var(--line);padding:6px 8px;border-radius:6px;color:#b9ad9b}.empty-details{height:100%;display:grid;place-content:center;text-align:center;color:#9c9183;padding:20px}.empty-details h2{font-family:Georgia,serif;color:var(--paper);margin:.5rem 0 .2rem}.detail-head{position:sticky;top:-16px;background:#211b17;padding:16px 0 12px;z-index:4;border-bottom:1px solid var(--line);margin-bottom:14px}.point-form textarea{resize:vertical;min-height:90px}.field-grid{display:grid;gap:8px}.field-grid.two{grid-template-columns:1fr 1fr}.field-grid.four{grid-template-columns:repeat(4,1fr)}.coords input{padding:8px 6px}.button-row{display:flex;gap:7px;flex-wrap:wrap}.button-row.compact{margin-top:-3px}.detail-section{border-top:1px solid var(--line);padding-top:14px;margin-top:16px}.section-title h3,.admin-panel h3{font-family:Georgia,serif;margin:0 0 9px}.resource-list,.folder-list{display:grid;gap:6px}.resource-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 9px;border-radius:7px;background:#2a231e;font-size:.76rem}.resource-item a,.resource-item button.linkish{color:#c5d8d2;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resource-item small{color:#877c6e}.resource-item button{border:0;background:transparent;color:#d39292;cursor:pointer}.folder-item{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px;border:1px solid #44372f;border-radius:8px;background:#2a231e;cursor:pointer}.folder-item:hover{border-color:#5e4b3f}.folder-icon{width:28px;height:28px;border-radius:6px;background:#3b3029;display:grid;place-items:center;color:#d8c7aa}.folder-item strong{display:block;font-size:.78rem}.folder-item small{color:#8f8375;font-size:.63rem}.folder-badges{display:flex;gap:4px}.badge{font-size:.58rem;border:1px solid #5b4a3e;border-radius:10px;padding:2px 5px;color:#b9aa95}.inline-form,.relation-form{display:grid;gap:7px;margin-top:8px}.upload-label{cursor:pointer}.upload-label input{display:none}.entity-dialog,.admin-dialog{width:min(1000px,calc(100% - 30px));max-height:calc(100% - 30px);padding:0;border:1px solid var(--line);border-radius:14px;background:#211b17;color:var(--beige);box-shadow:var(--shadow)}.entity-dialog{width:min(720px,calc(100% - 30px))}.entity-dialog::backdrop,.admin-dialog::backdrop{background:rgba(0,0,0,.72)}.dialog-head{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line)}.dialog-head h2{font-family:Georgia,serif;margin:2px 0}.entity-dialog-body{padding:18px;max-height:75vh;overflow:auto}.admin-dialog{height:min(760px,calc(100% - 30px))}.admin-tabs{display:flex;gap:3px;padding:8px 14px;border-bottom:1px solid var(--line);overflow:auto}.admin-tabs button{border:0;background:transparent;color:#9e9283;padding:8px 10px;border-radius:7px;white-space:nowrap;font-weight:750;cursor:pointer}.admin-tabs button.active{background:#2e2721;color:var(--beige)}.admin-body{padding:16px;height:calc(100% - 112px);overflow:auto}.admin-panel{display:none}.admin-panel.active{display:block}.admin-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(270px,.6fr);gap:22px}.admin-form{padding:14px;border:1px solid var(--line);border-radius:10px;background:#1b1714;align-self:start}.admin-form.compact-form{margin:12px 0}.admin-list{display:grid;gap:7px}.admin-item{display:grid;grid-template-columns:minmax(120px,1fr) auto auto;align-items:center;gap:8px;padding:10px;background:#2b241f;border-radius:8px;font-size:.78rem}.admin-item strong{display:block}.admin-item small{color:#8e8375}.role-pill{font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;padding:4px 7px;border-radius:20px;background:#183d33;color:#b9d4cc}.audit-list{display:grid;gap:4px;font-size:.73rem}.audit-row{display:grid;grid-template-columns:155px 110px 1fr;gap:10px;padding:7px 8px;border-bottom:1px solid var(--line)}.audit-row time,.audit-row span{color:#8f8375}.export-card,.map-admin-card{max-width:650px;padding:18px;border:1px solid var(--line);border-radius:10px;background:#1b1714}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);z-index:4000;background:#eadfca;color:#211b17;padding:10px 14px;border-radius:8px;font-size:.78rem;font-weight:800;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}code{background:#15110f;padding:2px 5px;border-radius:5px;color:#c6d6d1}
@media(max-width:1180px){.workspace{grid-template-columns:230px minmax(320px,1fr) 340px}.top-actions .btn{padding:8px 9px;font-size:.7rem}.search-wrap{width:250px}}
@media(max-width:880px){body{overflow:auto}.app{height:auto;min-height:100%;grid-template-rows:auto auto}.topbar{position:sticky;top:0;flex-wrap:wrap;gap:8px;padding:9px}.top-actions{width:100%;flex-wrap:wrap}.search-wrap{width:100%;order:2}.workspace{display:grid;grid-template-columns:1fr;grid-template-rows:auto 65vh auto}.left-panel{border-right:0;border-bottom:1px solid var(--line);max-height:360px}.detail-panel{border-left:0;border-top:1px solid var(--line);min-height:350px}.map-shell{min-height:500px}.admin-grid{grid-template-columns:1fr}.admin-dialog,.entity-dialog{width:calc(100% - 12px)}.field-grid.two{grid-template-columns:1fr}.audit-row{grid-template-columns:1fr}.audit-row time{font-size:.66rem}}
.permission-hidden{display:none!important}
a.btn.full{display:grid;place-items:center;text-decoration:none;margin-top:8px}

.field-grid.three{grid-template-columns:repeat(3,1fr)}
.point-list{display:grid;gap:4px;margin-top:10px}
.point-row{display:grid;grid-template-columns:10px minmax(0,1fr);gap:8px;align-items:center;width:100%;padding:8px;border:0;border-radius:8px;background:transparent;color:inherit;text-align:left;cursor:pointer}
.point-row strong{display:block;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.point-row small{color:#8f8375;font-size:.62rem}
.point-row.active,.point-row:hover{background:#2d251f}
.status-dot{width:10px;height:10px;border-radius:50%}
.workspace{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:minmax(0,1fr)!important}
.map-shell{height:100%;min-height:0;background:#d2b790}
.map-shell:before{display:none}
#map,.leaflet-container{background:#d2b790!important}
.leaflet-tile{border:0!important;box-shadow:none!important}
.point-card{position:absolute;z-index:500;top:14px;right:14px;width:min(320px,calc(100% - 28px));max-height:calc(100% - 28px);overflow:auto;padding:14px 16px 16px;border:1px solid var(--line);border-radius:12px;background:rgba(33,27,23,.96);box-shadow:var(--shadow)}
.point-card .detail-head{position:static;padding:0 0 10px;margin:0 0 12px;background:transparent}
.search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:700;max-height:280px;overflow:auto;padding:6px;border:1px solid var(--line);border-radius:10px;background:#211b17;box-shadow:var(--shadow)}
.search-results .panel-help{margin:8px}
.leaflet-control-zoom{display:none!important}
.folder-dock{position:absolute;z-index:500;top:12px;left:12px;width:37px;height:37px;padding:0;border:0;background:transparent;cursor:grab;filter:drop-shadow(0 4px 8px rgba(0,0,0,.45))}
.folder-dock:active{cursor:grabbing}
.folder-dock img{width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}
.folder-ghost{position:fixed;z-index:5000;width:37px;height:37px;pointer-events:none;transform:translate(-50%,-72%);filter:drop-shadow(0 6px 10px rgba(0,0,0,.5))}
.folder-panel{position:absolute;z-index:500;top:14px;right:14px;width:min(360px,calc(100% - 28px));max-height:calc(100% - 28px);overflow:auto;padding:14px 16px 16px;border:1px solid var(--line);border-radius:12px;background:rgba(33,27,23,.96);box-shadow:var(--shadow)}
.folder-panel .detail-head{position:static;padding:0 0 10px;margin:0 0 12px;background:transparent}
.folder-panel h3{font-family:Georgia,serif;font-size:1.05rem;margin:0}
.doc-head{display:flex;align-items:center;justify-content:space-between;margin:16px 0 8px}
.add-doc{width:28px;height:28px;border:1px solid var(--line);border-radius:8px;background:#2f6b5a;color:#eadfca;font-size:1.1rem;line-height:1;cursor:pointer}
.add-doc:hover{background:#225346}
.quest-tab{position:absolute;z-index:560;left:0;top:72px;max-height:220px;overflow:hidden;border:1px solid var(--line);border-left:0;border-radius:0 8px 8px 0;background:#211b17;color:#eadfca;padding:10px 7px;writing-mode:vertical-rl;letter-spacing:.08em;font-size:.68rem;font-weight:800;cursor:pointer}
.quest-panel{position:absolute;z-index:560;top:58px;bottom:12px;left:10px;width:min(360px,calc(100% - 20px));display:flex;flex-direction:column;gap:10px;padding:14px;border:1px solid var(--line);border-radius:12px;background:rgba(33,27,23,.96);box-shadow:var(--shadow);transform:translateX(0);transition:transform .2s ease;overflow:hidden}
.quest-panel.collapsed{transform:translateX(calc(-100% - 24px));pointer-events:none}
.quest-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.quest-panel-head h2{margin:2px 0 0;font-family:Georgia,serif;font-size:1.25rem}
.quest-panel h3{margin:0;font-family:Georgia,serif;font-size:1rem}
.quest-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.quest-section{display:flex;flex-direction:column;gap:8px;min-height:0;flex:1}
.kind-filters{display:grid;gap:6px;max-height:168px;overflow:auto}
.kind-row{display:flex;align-items:center;gap:4px}
.kind-row.editing .kind-chip{border-color:#356b5d}
.kind-chip{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;border:1px solid var(--line);background:transparent;color:#b9ad9b;border-radius:99px;padding:4px 9px;font-size:.68rem;font-weight:800;cursor:pointer}
.kind-chip.on{background:#225346;border-color:#356b5d;color:#eadfca}
.kind-create{display:flex;gap:6px;align-items:center}.kind-create input{flex:1;min-width:0;width:auto}
.kind-create input,.kind-editor input,.quest-editor input,.quest-editor select{width:100%;border:1px solid var(--line);background:#171310;color:var(--beige);padding:8px 10px;border-radius:8px}
.kind-editor,.quest-editor{display:grid;gap:8px}
.quest-editor label{display:grid;gap:4px;font-size:.72rem;color:#b9ad9b;font-weight:700}
.quest-list{display:grid;gap:6px;overflow:auto;min-height:0;flex:1}
.quest-row{display:grid;grid-template-columns:18px minmax(0,1fr);gap:6px 8px;align-items:start;padding:8px;border-radius:8px;background:#2a231e}
.quest-row.off{opacity:.45}
.quest-row.editing{outline:1px solid #356b5d}
.quest-main{min-width:0}
.quest-row strong{display:block;font-size:.8rem}
.quest-row small{color:#8f8375;font-size:.66rem}
.quest-row input[type=checkbox]{accent-color:#225346;margin-top:3px}
.quest-actions{grid-column:2;display:flex;align-items:center;gap:4px}
.mini-btn{width:28px;height:28px;display:grid;place-items:center;padding:0;border:1px solid var(--line);border-radius:7px;background:#171310;color:#eadfca;cursor:pointer}
.mini-btn svg{width:15px;height:15px;display:block}
.mini-btn.danger{color:#e6a0a0}
.mini-btn:hover{background:#3a312a}
.thread-color{width:28px;height:28px;padding:0;border:1px solid var(--line);border-radius:7px;background:transparent;cursor:pointer}
.thread-color::-webkit-color-swatch-wrapper{padding:2px}
.thread-color::-webkit-color-swatch{border:0;border-radius:4px}
.thread-toggle{width:28px;height:28px;border:0;background:transparent;position:relative;cursor:pointer}
.thread-toggle:before{content:"";position:absolute;left:4px;right:4px;top:13px;height:2px;border-radius:2px;background:#5c5148}
.thread-toggle.on:before{background:var(--thread,#9d2a2a)}
.quest-thread,.leaflet-overlay-pane path.quest-thread{pointer-events:none!important;filter:drop-shadow(0 1px 0 rgba(90,16,16,.35))}
.preview{position:fixed;inset:0;z-index:3600;display:grid;place-items:center}
.preview-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.72)}
.preview-card{position:relative;z-index:1;width:min(860px,calc(100% - 48px));max-height:calc(100% - 48px);display:grid;grid-template-columns:40px minmax(0,1fr) 40px;gap:8px 10px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:14px;background:#211b17;box-shadow:var(--shadow)}
.preview-stage{grid-column:2;min-height:180px;display:grid;place-items:center}
.preview-stage img{max-width:100%;max-height:68vh;object-fit:contain;border-radius:8px;background:#111}
.preview-stage p{margin:0;color:#eadfca;text-align:center;font-size:.84rem}
.preview-stage a{color:#c5d8d2}
#previewCaption{grid-column:1 / -1;margin:0;text-align:center;color:#eadfca;font-size:.82rem}
#previewClose{position:absolute;top:6px;right:6px}
.preview-nav{height:40px;border:1px solid var(--line);border-radius:8px;background:#2a231e;color:#eadfca;font-size:1.4rem;cursor:pointer}
.quest-thread-tip{background:#3a1818;color:#f3e6e6;border:0;border-radius:6px;font-weight:700}
.head-actions{display:flex;align-items:center;gap:2px}
.danger-icon{color:#e6a0a0}
.item-section{border-top:1px solid var(--line);margin-top:14px}
.item-list{display:grid;gap:6px;margin-bottom:12px}
.item-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center;padding:8px 10px;border:1px solid transparent;border-radius:8px;background:#2a231e}
.item-row.active,.item-row:hover{border-color:#5e4b3f}
.item-open{display:grid;gap:2px;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}
.item-row strong{font-size:.8rem}
.item-row small,.item-row a{color:#8f8375;font-size:.68rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.item-row a{color:#c5d8d2}
.folder-form select{width:100%;border:1px solid var(--line);background:#171310;color:var(--beige);padding:11px 12px;border-radius:9px}
.folder-panel .button-row{display:flex;gap:8px;flex-wrap:wrap}
.folder-panel .button-row .btn{flex:1}
.folder-popup .leaflet-popup-content-wrapper{background:#211b17;color:#eadfca;border:1px solid #4a3b31;border-radius:12px;box-shadow:0 14px 42px rgba(0,0,0,.36)}
.folder-popup .leaflet-popup-tip{background:#211b17}
.folder-popup .leaflet-popup-content{margin:14px 16px;width:240px!important}
.folder-popup .leaflet-popup-close-button{color:#eadfca!important;font-size:20px!important;padding:8px 8px 0 0!important}
.folder-form{display:grid;gap:12px}
.folder-form label{display:grid;gap:6px;font-size:.78rem;color:#b9ad9b;font-weight:700}
.folder-form input{width:100%;border:1px solid #4a3b31;background:#171310;color:#eadfca;padding:11px 12px;border-radius:9px;outline:none}
.folder-form input:focus{border-color:#4c7c70;box-shadow:0 0 0 3px rgba(34,83,70,.18)}
.folder-form .button-row{display:flex;gap:8px}
.folder-form .btn{flex:1}
.tool-dock{position:absolute;z-index:640;top:12px;left:12px;display:flex;gap:6px;align-items:center}
.dock-btn{width:40px;height:40px;padding:3px;border:0;border-radius:10px;background:transparent;cursor:grab;filter:drop-shadow(0 4px 8px rgba(0,0,0,.45))}
.dock-btn:active{cursor:grabbing}
.dock-btn img{width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}
.dock-btn.draw-toggle{cursor:pointer;display:grid;place-items:center;background:#211b17;color:#eadfca;border:1px solid rgba(234,223,202,.35);filter:none}
.dock-btn.draw-toggle svg{width:20px;height:20px}
.dock-btn.draw-toggle.on{background:#9d2a2a;color:#fff}
.draw-palette{position:absolute;z-index:640;top:58px;left:12px;width:min(280px,calc(100% - 24px));display:grid;gap:8px;padding:10px;border:1px solid var(--line);border-radius:12px;background:rgba(33,27,23,.96);box-shadow:var(--shadow)}
.draw-palette label{display:grid;gap:4px;font-size:.68rem;color:#cbbba6}
.draw-palette input[type="color"]{width:100%;height:32px;padding:0;border:0;background:transparent}
.draw-palette select,.draw-palette input[type="range"]{width:100%}
.draw-tools{display:flex;gap:4px}
.draw-tools button{flex:1;height:32px;border:1px solid #4a3b31;border-radius:8px;background:#171310;color:#eadfca;cursor:pointer}
.draw-tools button.on{background:#9d2a2a;border-color:#9d2a2a;color:#fff}
.draw-text-input{position:fixed;z-index:650;min-width:160px;border:1px solid #eadfca;background:rgba(23,19,16,.92);color:#eadfca;padding:6px 8px;border-radius:8px;font-family:Handlee,cursive;font-size:22px}
.map-note{background:none!important;border:0!important;width:max-content!important;height:auto!important}
.map-note span{display:inline-block;white-space:nowrap;line-height:1;text-shadow:0 1px 2px rgba(0,0,0,.55);pointer-events:auto;cursor:grab;touch-action:none}
.map-note span:active{cursor:grabbing}
.map-note.selected span{outline:1px dashed currentColor;outline-offset:3px}
.poi-icon{object-fit:contain}
.folder-form select{width:100%;border:1px solid #4a3b31;background:#171310;color:#eadfca;padding:11px 12px;border-radius:9px}
.point-notes{display:grid;gap:6px;margin:0 0 10px;font-size:.78rem;color:#cbbba6}
.point-notes textarea{width:100%;min-height:140px;resize:vertical;border:1px solid #4a3b31;background:#171310;color:#eadfca;padding:11px 12px;border-radius:9px;outline:none;font:inherit}
.point-notes textarea:focus{border-color:#4c7c70;box-shadow:0 0 0 3px rgba(34,83,70,.18)}
.point-save{margin-bottom:12px}
