:root,[data-theme=parchment]{--bg: #f5f0e8;--bg-card: #fffcf7;--bg-nav: #ede7dc;--text: #3d2b1f;--text-dim: #8a7060;--text-muted: #b5a090;--accent: #c4845a;--accent-h: #a8663a;--accent-sub: rgba(196,132,90,.12);--border: rgba(61,43,31,.1);--shadow: 0 2px 14px rgba(61,43,31,.08);--shadow-card: 0 1px 4px rgba(61,43,31,.06), 0 4px 16px rgba(61,43,31,.06)}[data-theme=ocean]{--bg: #edf4f8;--bg-card: #f8fcff;--bg-nav: #deeef5;--text: #1a3a4f;--text-dim: #4a7a9f;--text-muted: #8abace;--accent: #2980b9;--accent-h: #1a6fa8;--accent-sub: rgba(41,128,185,.1);--border: rgba(26,58,79,.1);--shadow: 0 2px 14px rgba(26,58,79,.08);--shadow-card: 0 1px 4px rgba(26,58,79,.06), 0 4px 16px rgba(26,58,79,.06)}[data-theme=forest]{--bg: #eff5ed;--bg-card: #f8fdf7;--bg-nav: #e2ede0;--text: #1e3a1e;--text-dim: #4a7a4a;--text-muted: #8ab88a;--accent: #4a8a3a;--accent-h: #366a28;--accent-sub: rgba(74,138,58,.1);--border: rgba(30,58,30,.1);--shadow: 0 2px 14px rgba(30,58,30,.08);--shadow-card: 0 1px 4px rgba(30,58,30,.06), 0 4px 16px rgba(30,58,30,.06)}[data-theme=dusk]{--bg: #f4f0f8;--bg-card: #fbf8ff;--bg-nav: #ebe5f5;--text: #2d1f4a;--text-dim: #6a5a8a;--text-muted: #a898c8;--accent: #7c5cbf;--accent-h: #6248a8;--accent-sub: rgba(124,92,191,.1);--border: rgba(45,31,74,.1);--shadow: 0 2px 14px rgba(45,31,74,.08);--shadow-card: 0 1px 4px rgba(45,31,74,.06), 0 4px 16px rgba(45,31,74,.06)}[data-theme=parchment][data-dark=true]{--bg: #1c1510;--bg-card: #271e16;--bg-nav: #211912;--text: #efe5d8;--text-dim: #a88c6a;--text-muted: #6a5840;--border: rgba(255,220,180,.1);--shadow: 0 2px 14px rgba(0,0,0,.55);--shadow-card: 0 1px 4px rgba(0,0,0,.4), 0 4px 16px rgba(0,0,0,.32)}[data-theme=ocean][data-dark=true]{--bg: #0c1c28;--bg-card: #142535;--bg-nav: #102030;--text: #d8ecf8;--text-dim: #5a90b8;--text-muted: #3a6080;--border: rgba(180,220,255,.1);--shadow: 0 2px 14px rgba(0,0,0,.55);--shadow-card: 0 1px 4px rgba(0,0,0,.4), 0 4px 16px rgba(0,0,0,.32)}[data-theme=forest][data-dark=true]{--bg: #0c180c;--bg-card: #142014;--bg-nav: #101a10;--text: #d0ead0;--text-dim: #4a8a4a;--text-muted: #306030;--border: rgba(180,255,180,.08);--shadow: 0 2px 14px rgba(0,0,0,.55);--shadow-card: 0 1px 4px rgba(0,0,0,.4), 0 4px 16px rgba(0,0,0,.32)}[data-theme=dusk][data-dark=true]{--bg: #120e1c;--bg-card: #1c1630;--bg-nav: #171228;--text: #e8d8f8;--text-dim: #7a5aa8;--text-muted: #503870;--border: rgba(200,180,255,.1);--shadow: 0 2px 14px rgba(0,0,0,.55);--shadow-card: 0 1px 4px rgba(0,0,0,.4), 0 4px 16px rgba(0,0,0,.32)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif;font-size:15px;line-height:1.6;transition:background .3s,color .3s;min-height:100vh}.app{display:flex;flex-direction:column;min-height:100vh}.app-body{display:flex;flex:1;max-width:1160px;margin:0 auto;width:100%;padding:0 1.5rem 3rem;gap:2rem;align-items:flex-start}.header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 1.5rem;height:60px;border-bottom:1px solid var(--border);background:var(--bg-card);position:sticky;top:0;z-index:50}.header-title{font-family:Lora,serif;font-size:1.15rem;font-weight:600;color:var(--text);white-space:nowrap}.header-right{display:flex;align-items:center;gap:.75rem}.theme-picker{display:flex;gap:6px;align-items:center}.theme-swatch{width:20px;height:20px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .15s,border-color .15s}.theme-swatch:hover{transform:scale(1.2)}.theme-swatch.active{border-color:var(--text)}.theme-swatch[data-t=parchment]{background:#c4845a}.theme-swatch[data-t=ocean]{background:#2980b9}.theme-swatch[data-t=forest]{background:#4a8a3a}.theme-swatch[data-t=dusk]{background:#7c5cbf}.dark-toggle{background:none;border:1px solid var(--border);color:var(--text-dim);width:30px;height:30px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.85rem;transition:color .15s,border-color .15s,background .15s;flex-shrink:0}.dark-toggle:hover{color:var(--accent);border-color:var(--accent)}.btn-subtle{background:none;border:1px solid var(--border);color:var(--text-dim);font-size:.78rem;padding:4px 10px;border-radius:6px;cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap}.btn-subtle:hover{color:var(--accent);border-color:var(--accent)}.location-nav{width:220px;flex-shrink:0;padding-top:1.5rem;position:sticky;top:72px;max-height:calc(100vh - 80px);overflow-y:auto}.nav-section-title{font-size:.65rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);padding:0 .5rem .5rem}.nav-all{display:flex;align-items:center;gap:6px;width:100%;background:none;border:none;color:var(--text-dim);font-size:.88rem;padding:5px 8px;border-radius:6px;cursor:pointer;text-align:left;margin-bottom:.5rem;transition:background .15s,color .15s}.nav-all:hover,.nav-all.active{background:var(--accent-sub);color:var(--accent)}.nav-country{margin-bottom:2px}.nav-country-row{display:flex;align-items:center;gap:4px;border-radius:6px;transition:background .15s}.nav-country-row:hover{background:var(--accent-sub)}.nav-expand-btn{background:none;border:none;color:var(--text-muted);width:22px;height:22px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:4px;flex-shrink:0;font-size:.7rem;transition:color .15s}.nav-expand-btn:hover{color:var(--text)}.nav-pin-btn{flex:1;background:none;border:none;color:var(--text-dim);font-size:.88rem;padding:5px 4px;text-align:left;cursor:pointer;border-radius:4px;transition:color .15s;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-pin-btn:hover,.nav-pin-btn.active{color:var(--accent)}.nav-pin-btn.active{font-weight:500}.nav-children{padding-left:22px;margin-bottom:2px}.nav-edit-btn{background:none;border:none;color:var(--text-muted);font-size:.7rem;padding:2px 4px;cursor:pointer;border-radius:3px;opacity:0;transition:opacity .15s,color .15s}.nav-country-row:hover .nav-edit-btn,.nav-children .nav-country-row:hover .nav-edit-btn{opacity:1}.nav-edit-btn:hover{color:var(--accent)}.nav-add-btn{display:flex;align-items:center;gap:4px;width:100%;background:none;border:1px dashed var(--border);color:var(--text-muted);font-size:.78rem;padding:4px 8px;border-radius:6px;cursor:pointer;margin-top:.75rem;transition:color .15s,border-color .15s}.nav-add-btn:hover{color:var(--accent);border-color:var(--accent)}.storyboard{flex:1;min-width:0;padding-top:1.5rem}.storyboard-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;gap:1rem}.storyboard-location{font-family:Lora,serif;font-size:1.3rem;color:var(--text)}.storyboard-location span{color:var(--text-dim);font-size:1rem;font-family:Inter,sans-serif;margin-left:.5rem}.btn-new-entry{display:flex;align-items:center;gap:6px;background:var(--accent);color:#fff;border:none;border-radius:8px;padding:7px 14px;font-size:.85rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s}.btn-new-entry:hover{background:var(--accent-h)}.storyboard-empty{text-align:center;color:var(--text-muted);padding:4rem 2rem;font-size:.95rem;line-height:1.8}.post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem}.post-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-card);cursor:pointer;transition:transform .15s,box-shadow .15s;display:flex;flex-direction:column;overflow:hidden;text-align:left;width:100%}.post-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.post-card-cover{width:100%;height:160px;object-fit:cover;display:block;background:var(--bg-nav)}.post-card-body{padding:1rem 1.1rem 1.1rem;display:flex;flex-direction:column;gap:.4rem;flex:1}.post-card-badges{display:flex;gap:5px;flex-wrap:wrap}.badge{font-size:.62rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;border-radius:4px}.badge-story{background:#2980b91f;color:#1a6fa8}.badge-poem{background:#7c5cbf1f;color:#6248a8}.badge-journal{background:#c4845a26;color:#a8663a}.badge-photo{background:#4a8a3a1f;color:#366a28}.badge-lang{background:var(--accent-sub);color:var(--accent)}.post-card-title{font-family:Lora,serif;font-size:1rem;font-weight:600;color:var(--text);line-height:1.3}.post-card-excerpt{font-size:.84rem;color:var(--text-dim);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.post-card-meta{display:flex;align-items:center;gap:6px;font-size:.75rem;color:var(--text-muted);margin-top:auto;padding-top:.5rem;flex-wrap:wrap}.post-card-meta-sep{opacity:.4}.post-viewer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:200;display:flex;align-items:flex-start;justify-content:center;padding:2vh 1rem;overflow-y:auto}.post-viewer{background:var(--bg-card);border-radius:14px;width:100%;max-width:720px;box-shadow:0 8px 40px #0000002e;position:relative;margin:auto}.post-viewer-header{padding:1.5rem 1.5rem 1rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.post-viewer-meta{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:.6rem}.post-viewer-title{font-family:Lora,serif;font-size:1.6rem;font-weight:600;line-height:1.25;color:var(--text)}.post-viewer-byline{font-size:.8rem;color:var(--text-muted);margin-top:.4rem}.post-viewer-actions{display:flex;gap:6px;flex-shrink:0}.btn-icon{background:none;border:1px solid var(--border);color:var(--text-dim);width:34px;height:34px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:all .15s}.btn-icon:hover{border-color:var(--accent);color:var(--accent)}.btn-icon.danger:hover{border-color:#d94f4f;color:#d94f4f}.post-viewer-body{padding:1.5rem}.markdown-body{color:var(--text)}.markdown-body h1,.markdown-body h2,.markdown-body h3{font-family:Lora,serif;color:var(--text);margin:1.5em 0 .5em;line-height:1.2}.markdown-body h1{font-size:1.5rem}.markdown-body h2{font-size:1.2rem}.markdown-body h3{font-size:1rem}.markdown-body p{margin:0 0 1em;line-height:1.75}.markdown-body img{max-width:100%;border-radius:8px;margin:1em 0;display:block}.markdown-body blockquote{border-left:3px solid var(--accent);margin:1em 0;padding:.5em 1em;color:var(--text-dim);font-style:italic}.markdown-body code{background:var(--bg-nav);padding:2px 5px;border-radius:4px;font-size:.88em}.markdown-body pre{background:var(--bg-nav);padding:1em;border-radius:8px;overflow-x:auto;margin:1em 0}.markdown-body ul,.markdown-body ol{padding-left:1.5em;margin:0 0 1em}.markdown-body li{margin-bottom:.3em}.markdown-body hr{border:none;border-top:1px solid var(--border);margin:2em 0}.markdown-body a{color:var(--accent);text-decoration:underline}.content-poem .markdown-body{text-align:center;font-family:Lora,serif;font-style:italic;font-size:1.05rem;line-height:2;max-width:480px;margin:0 auto}.content-journal .markdown-body{font-size:.95rem;line-height:1.85;color:var(--text-dim)}.editor-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:300;display:flex;align-items:flex-start;justify-content:center;padding:2vh 1rem;overflow-y:auto}.editor-card{background:var(--bg-card);border-radius:14px;width:100%;max-width:780px;margin:auto;display:flex;flex-direction:column;box-shadow:0 8px 40px #0000002e;max-height:95vh;overflow:hidden}.editor-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--border);flex-shrink:0}.editor-title{font-family:Lora,serif;font-size:1rem;font-weight:600;color:var(--text)}.editor-tabs{display:flex;gap:2px;padding:.75rem 1.5rem 0;border-bottom:1px solid var(--border);flex-shrink:0}.editor-tab{background:none;border:none;padding:6px 14px 10px;font-size:.85rem;color:var(--text-dim);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}.editor-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.editor-body{flex:1;overflow-y:auto;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1rem}.editor-footer{padding:1rem 1.5rem;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:.75rem;flex-shrink:0}.form-group{display:flex;flex-direction:column;gap:5px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group label{font-size:.78rem;font-weight:500;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em}.form-group input,.form-group select,.form-group textarea{background:var(--bg);border:1px solid var(--border);border-radius:7px;color:var(--text);font-size:.9rem;font-family:inherit;padding:7px 10px;outline:none;transition:border-color .15s;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--accent)}.form-group textarea{resize:vertical;min-height:80px}.md-toolbar{display:flex;flex-wrap:wrap;gap:2px;padding:5px 6px;background:var(--bg-nav);border:1px solid var(--border);border-bottom:none;border-radius:7px 7px 0 0}.md-btn{background:none;border:none;color:var(--text-dim);font-size:.8rem;padding:3px 7px;border-radius:4px;cursor:pointer;min-width:28px;transition:background .1s,color .1s}.md-btn:hover{background:var(--border);color:var(--text)}.md-btn-wide{min-width:36px}.toolbar-sep{width:1px;background:var(--border);margin:2px 4px}.editor-content-area{display:flex;gap:0}.editor-content-area.mode-split .content-textarea,.editor-content-area.mode-split .content-preview{width:50%}.content-textarea{flex:1;min-height:280px;background:var(--bg);border:1px solid var(--border);border-radius:0 0 0 7px;color:var(--text);font-family:Courier New,monospace;font-size:.88rem;line-height:1.6;padding:10px 12px;resize:vertical;outline:none}.mode-split .content-textarea{border-radius:0;border-right:none}.mode-preview .content-textarea{display:none}.content-preview{flex:1;min-height:280px;background:var(--bg-card);border:1px solid var(--border);border-radius:0 0 7px;padding:10px 14px;overflow-y:auto;font-size:.9rem}.mode-edit .content-preview{display:none}.content-header{display:flex;align-items:center;justify-content:space-between}.mode-buttons{display:flex;gap:2px}.mode-btn{background:none;border:1px solid var(--border);color:var(--text-dim);font-size:.75rem;padding:3px 9px;border-radius:5px;cursor:pointer;transition:all .15s}.mode-btn.active{background:var(--accent-sub);color:var(--accent);border-color:var(--accent)}.btn{padding:7px 16px;border-radius:7px;font-size:.88rem;font-weight:500;cursor:pointer;border:none;transition:all .15s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-h)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:none;border:1px solid var(--border);color:var(--text-dim)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.btn-danger{background:none;border:1px solid #d94f4f;color:#d94f4f}.btn-danger:hover{background:#d94f4f;color:#fff}.location-header{display:flex;align-items:center;justify-content:space-between}.map-toggle-btn{background:var(--accent-sub);border:none;color:var(--accent);font-size:.78rem;padding:4px 10px;border-radius:5px;cursor:pointer}.coords-display{font-size:.75rem;color:var(--text-muted);margin-top:4px}.date-range-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}.date-range-sep{color:var(--text-muted)}.date-range-hint{font-size:.72rem;color:var(--text-muted);margin-top:2px}.date-remove-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.85rem}.date-remove-btn:hover{color:#d94f4f}.date-add-btn{background:none;border:1px dashed var(--border);color:var(--text-muted);font-size:.78rem;padding:4px 10px;border-radius:5px;cursor:pointer;margin-top:2px}.date-add-btn:hover{border-color:var(--accent);color:var(--accent)}.error-toast{background:#d94f4f1a;border:1px solid rgba(217,79,79,.3);color:#c03030;border-radius:7px;padding:8px 12px;font-size:.85rem}.loading{display:flex;align-items:center;justify-content:center;height:100vh;font-family:Lora,serif;font-size:1.1rem;color:var(--text-dim)}@media (max-width: 700px){.app-body{flex-direction:column;padding:0 1rem 2rem;gap:0}.location-nav{width:100%;position:static;max-height:none;border-bottom:1px solid var(--border);padding-bottom:1rem}.form-row,.post-grid{grid-template-columns:1fr}.editor-card{max-height:none}}
