:root{--bg:#080a0d;--surface:#11151a;--surface-2:#171c22;--border:#252c34;--border-strong:#39434d;--text:#f4f6f8;--text-muted:#8d97a3;--text-soft:#c3ccd6;--accent:#b8ff3d;--accent-dark:#8ec52b;--accent-contrast:#070900;--accent-soft:rgba(184,255,61,.12);--film:#f0b429;--success:#b8ff3d;--success-soft:rgba(184,255,61,.14);--danger:#ff5d5d;--danger-soft:rgba(255,93,93,.14);--warning:#ffc247;--warning-soft:rgba(255,194,71,.14);--gap:#39434d;--radius-sm:7px;--radius:11px;--radius-lg:16px;--shadow:0 1px 3px rgba(0,0,0,.5);--shadow-lift:0 18px 40px -22px rgba(0,0,0,.9);--font-body:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;--font-display:Archivo,Inter,-apple-system,BlinkMacSystemFont,Arial,sans-serif;--type-scenic:#22d3ee;--type-landmark:#a78bfa;--type-poi:#fb923c;--type-interesting:#f472b6;--type-combined:#b8ff3d;color-scheme:dark}*{box-sizing:border-box}body,html{margin:0;padding:0}html{overflow-x:clip}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.02em;line-height:1.25;margin:0 0 .5rem}::-moz-selection{background:var(--accent);color:var(--accent-contrast)}::selection{background:var(--accent);color:var(--accent-contrast)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1{font-size:1.5rem}h2{font-size:1.1rem}h3{font-size:1rem}p{margin:0 0 .75rem}a{color:var(--accent)}.mono,code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.app{display:flex;flex-direction:column;margin:0 auto;max-width:1200px;min-height:100vh;padding:1.5rem 1rem 2rem}.app-main{flex:1;min-width:0}.app-header{align-items:center;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:.8rem;justify-content:flex-start;margin-bottom:1.5rem;padding-bottom:1rem}.logo{color:var(--text);font-family:var(--font-display);font-size:22px;font-weight:900;letter-spacing:.08em;text-decoration:none}.logo span{color:var(--accent)}.app-header .tagline{color:var(--text-muted);margin:0}.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.card{background:linear-gradient(180deg,#131920,var(--surface) 120px);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift);margin-bottom:1rem;padding:1.35rem 1.4rem 1.4rem;position:relative}.card.disabled{opacity:.6;pointer-events:none}.card-header{align-items:center;display:flex;gap:.75rem;justify-content:space-between;margin-bottom:.75rem}.card-header h2{font-size:22px;font-weight:800;letter-spacing:-.03em;margin:0;padding-top:12px;position:relative}.card-header h2:before{background:var(--accent);border-radius:3px;content:"";height:3px;left:0;position:absolute;top:0;width:28px}.muted{color:var(--text-muted)}.small,label{font-size:.85rem}label{color:var(--text-muted);display:block;margin-bottom:.25rem}input:not([type]),input[type=number],input[type=search],input[type=text],textarea{background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);font:inherit;padding:.55rem .7rem;width:100%}input:not([type]):focus,input[type=number]:focus,input[type=search]:focus,input[type=text]:focus,textarea:focus{border-color:transparent;outline:2px solid var(--accent);outline-offset:1px}.field-row{align-items:flex-end;display:flex;flex-wrap:wrap;gap:.5rem}.field-row .field{flex:1 1 200px}button{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;color:var(--text);cursor:pointer;font:inherit;padding:.55rem .9rem;transition:background .12s,opacity .12s;white-space:nowrap}button:hover:not(:disabled){border-color:var(--border-strong)}button:disabled{cursor:not-allowed;opacity:.5}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);font-weight:800}button.primary:hover:not(:disabled){background:var(--accent-dark);border-color:var(--accent-dark)}button.icon,button.small{font-size:.85rem;padding:.3rem .55rem}button.icon{line-height:1;min-width:2rem}.alert{border:1px solid transparent;border-radius:8px;font-size:.9rem;margin:.5rem 0;padding:.6rem .8rem}.alert.error{background:var(--danger-soft);color:var(--danger)}.alert.success{background:var(--success-soft);color:var(--success)}.alert.info{background:var(--accent-soft);color:var(--text)}.dropzone{background:var(--surface-2);border:2px dashed var(--border);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;padding:1.5rem 1rem;text-align:center;transition:border-color .12s,background .12s}.dropzone.active,.dropzone:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.dropzone input[type=file]{display:none}.dropzone strong{color:var(--text)}.progress{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;height:6px;overflow:hidden}.progress>span{background:var(--accent);display:block;height:100%;transition:width .15s linear}.progress.done>span{background:var(--success)}.progress.error>span{background:var(--danger)}.file-list{display:flex;flex-direction:column;gap:.5rem;list-style:none;margin:.75rem 0 0;padding:0}.file-item{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:8px;display:grid;gap:.75rem;grid-template-columns:auto 1fr auto;padding:.6rem .75rem}.file-item .index{color:var(--text-muted);font-variant-numeric:tabular-nums;min-width:1.5rem;text-align:right}.file-item .name{font-weight:500;overflow-wrap:anywhere}.file-item .meta{color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:.85rem;gap:.75rem}.file-item .actions{display:flex;gap:.25rem}.file-item .progress{margin-top:.35rem}.badge{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;color:var(--text-muted);display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.02em;padding:.1rem .5rem;white-space:nowrap}.badge.ok{background:var(--success-soft);color:var(--success)}.badge.err,.badge.ok{border-color:transparent}.badge.err{background:var(--danger-soft);color:var(--danger)}.badge.busy{background:var(--accent-soft);color:var(--text)}.badge.busy,.badge.warn{border-color:transparent}.badge.warn{background:var(--warning-soft);color:var(--warning)}.badge.type{border-color:transparent;color:#fff}.badge.type-SCENIC{background:var(--type-scenic)}.badge.type-LANDMARK{background:var(--type-landmark)}.badge.type-POI{background:var(--type-poi)}.badge.type-INTERESTING{background:var(--type-interesting)}.badge.type-COMBINED{background:var(--type-combined)}.badge.type{color:#070900}.stepper{flex-wrap:wrap;list-style:none;margin:.75rem 0;padding:0}.step,.stepper{display:flex;gap:.35rem}.step{align-items:center;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;color:var(--text-muted);font-size:.8rem;padding:.3rem .6rem}.step .dot{background:var(--border);border-radius:50%;height:8px;width:8px}.step.done{background:var(--success-soft);border-color:transparent;color:var(--success)}.step.done .dot{background:var(--success)}.step.current{background:var(--accent-soft);border-color:var(--accent);color:var(--text);font-weight:600}.step.current .dot{animation:pulse 1.2s ease-in-out infinite;background:var(--accent)}.step.failed{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.step.failed .dot{background:var(--danger)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.spinner{animation:spin .8s linear infinite;border:2px solid var(--border);border-radius:50%;border-top-color:var(--accent);display:inline-block;height:14px;vertical-align:-2px;width:14px}@keyframes spin{to{transform:rotate(1turn)}}table{border-collapse:collapse;font-size:.9rem;width:100%}td,th{border-bottom:1px solid var(--border);padding:.45rem .5rem;text-align:left;vertical-align:top}th{color:var(--text-muted);font-size:.8rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.table-wrap{overflow-x:auto}.highlights{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-top:.75rem}.highlight{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:.5rem;padding:.9rem}.highlight .top{justify-content:space-between}.highlight .score{font-variant-numeric:tabular-nums;font-weight:600}.highlight h3{margin:0}.highlight .desc{color:var(--text-muted);font-size:.9rem;margin:0}.highlight dl{display:grid;font-size:.85rem;gap:.15rem .6rem;grid-template-columns:auto 1fr;margin:0}.highlight dt{color:var(--text-muted)}.highlight dd{margin:0;overflow-wrap:anywhere}.highlight .foot{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;margin-top:auto}.kv{display:grid;font-size:.9rem;gap:.2rem .75rem;grid-template-columns:auto 1fr;margin:0}.kv dt{color:var(--text-muted)}.kv dd{margin:0;overflow-wrap:anywhere}.empty{color:var(--text-muted);font-style:italic;padding:.5rem 0}.flex{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.spacer{flex:1}@media(max-width:600px){.app{padding:1rem .75rem 2rem}.card{padding:1rem}.file-item{grid-template-columns:auto 1fr}.file-item .actions{grid-column:1/-1;justify-content:flex-end}}.highlight .media{align-items:center;aspect-ratio:16/9;background:var(--bg-muted,hsla(0,0%,49.8%,.12));border-radius:8px;display:flex;justify-content:center;margin-bottom:.75rem;overflow:hidden;position:relative}.highlight .media img,.highlight .media video{background:#000;display:block;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.highlight .media video{-o-object-fit:contain;object-fit:contain}.highlight .media .placeholder{align-items:center;color:var(--text-muted,#888);display:flex;flex-direction:column;font-size:.9rem;gap:.35rem;padding:1rem;text-align:center}.highlight .media .placeholder small{font-size:.75rem}.highlight .media.media-none{background-image:repeating-linear-gradient(135deg,transparent 0 10px,hsla(0,0%,49.8%,.07) 10px 20px);border:1px dashed var(--border,hsla(0,0%,49.8%,.4))}.highlight .media .media-label{background:#0009;border-radius:999px;bottom:.5rem;color:#fff;font-size:.7rem;left:.5rem;padding:.15rem .45rem;pointer-events:none;position:absolute}.highlight .source{font-size:.78rem;margin:.25rem 0 0}.highlight .source a{color:var(--accent)}.highlight.custom{border:1px dashed var(--accent)}.highlight .custom-flag{background:var(--accent);border-radius:999px;bottom:.5rem;color:var(--accent-contrast);font-size:.68rem;font-weight:700;letter-spacing:.08em;padding:.15rem .5rem;position:absolute;right:.5rem}.highlight .note{color:var(--text-muted);margin:.35rem 0 0}button.danger{border-color:var(--danger);color:var(--danger)}.hl-head{align-items:center;display:flex;gap:1rem;justify-content:space-between}.hl-head h3{margin-bottom:0}.add-panel{background:var(--card-bg,transparent);border:1px dashed var(--accent);border-radius:12px;margin:.9rem 0 1.2rem;padding:1rem}.add-modes{display:flex;font-size:.9rem;gap:1.5rem;margin-bottom:.8rem}.add-body{display:grid;gap:1rem;grid-template-columns:minmax(220px,2fr) 3fr}@media(max-width:720px){.add-body{grid-template-columns:1fr}}.add-media{aspect-ratio:16/9;background:#000;border-radius:8px;display:grid;overflow:hidden;place-items:center}.add-media img{display:block;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.add-media .placeholder{color:var(--text-muted);font-size:.85rem;padding:1rem;text-align:center}.add-fields{display:grid;gap:.6rem}.add-fields label{color:var(--text-muted);display:grid;font-size:.85rem;gap:.25rem}.add-fields input[type=range]{accent-color:var(--accent)}.two-col{display:grid;gap:.6rem;grid-template-columns:1fr 1fr}.highlight .top{align-items:center;display:flex;gap:.5rem}.highlight .top .spacer{flex:1}.highlight .media .num{background:#12303fd9;border-radius:999px;color:#fff;display:grid;font:700 .8rem/1 ui-monospace,monospace;height:1.6rem;left:.6rem;min-width:1.6rem;padding:0 .45rem;place-items:center;position:absolute;top:.6rem}.kv .id-row{align-items:center;display:flex;flex-wrap:wrap;gap:.6rem}.btn-label,.upload-image{cursor:pointer}.btn-like{background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text);display:inline-block;font-size:.8rem;padding:.3rem .7rem}.btn-like:hover{border-color:var(--accent);color:var(--accent)}.fab-stack{align-items:flex-end;bottom:1.25rem;display:flex;flex-direction:column;gap:.6rem;position:fixed;right:1.25rem;z-index:900}.fab{background:var(--accent);border:0;border-radius:50%;box-shadow:0 8px 24px #0000004d;color:var(--accent-contrast);cursor:pointer;display:grid;height:52px;padding:0;place-items:center;position:static;width:52px}.fab:hover{filter:brightness(1.08);transform:translateY(-1px)}.highlight.flash{outline:2px solid var(--accent);outline-offset:2px;transition:outline-color 1s}.fab.secondary{background:var(--surface);border:1px solid var(--border);color:var(--accent);height:46px;width:46px}.fab svg{display:block}.fab.widget-fab{position:relative}.fab-dot{border:2px solid var(--surface);border-radius:50%;box-sizing:border-box;height:12px;position:absolute;right:1px;top:1px;width:12px}.fab-dot.behind{background:#f0b429}.fab-dot.off{background:var(--surface);border:2px solid #8a939c}.upload-grid{margin:0}.upload-title{color:var(--text-muted);font-size:.95rem;letter-spacing:.04em;margin:0 0 .5rem;text-transform:uppercase}.dropzone.disabled{cursor:not-allowed;opacity:.55}.hidden-bar{align-items:center;display:flex;flex-wrap:wrap;gap:.8rem;margin:.6rem 0 .8rem}.highlight.is-hidden{border-style:dotted;opacity:.6}.highlight.is-hidden:hover{opacity:1}.highlight .hidden-flag{background:#12303fd9;border-radius:999px;color:#fff;font-size:.68rem;font-weight:700;letter-spacing:.08em;padding:.15rem .5rem;position:absolute;right:.5rem;top:.5rem}.tours-card{grid-column:1/-1}.tours{border-collapse:collapse;font-size:.88rem;width:100%}.tours td,.tours th{border-bottom:1px solid var(--border);padding:.45rem .6rem;text-align:left;vertical-align:middle}.tours th{color:var(--text-muted);font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.tours tr:last-child td{border-bottom:0}.tours td:nth-child(n+5){font-variant-numeric:tabular-nums;text-align:center}.tours th:nth-child(n+5){text-align:center}button.link{background:none;border:0;color:var(--accent);cursor:pointer;font-size:.82rem;padding:0;text-decoration:underline;text-underline-offset:2px}button.link:hover{color:var(--text)}button.link:disabled{cursor:wait;opacity:.6}@media(max-width:720px){.tours td:nth-child(3),.tours td:nth-child(5),.tours th:nth-child(3),.tours th:nth-child(5){display:none}.tours{display:block;overflow-x:auto}}.stages{--node:34px;display:grid;grid-template-columns:repeat(3,1fr);list-style:none;margin:0 0 18px;padding:0}.stages li{align-items:flex-start;color:var(--text-muted);display:flex;flex-direction:column;font-size:13px;font-weight:600;gap:8px;padding-right:10px;position:relative}.stages li:before{background:var(--border);border-radius:2px;content:"";height:2px;left:calc(var(--node) + 6px);position:absolute;right:6px;top:calc(var(--node)/2 - 1px)}.stages li:last-child:before{display:none}.stages li.done:before{background:linear-gradient(90deg,var(--accent),rgba(184,255,61,.35))}.stage-node{background:var(--bg);border:2px solid var(--border-strong);border-radius:50%;color:var(--text-muted);display:grid;font-family:var(--font-display);font-size:12px;font-weight:900;height:var(--node);place-items:center;transition:box-shadow .2s,transform .2s;width:var(--node)}.stages li.done .stage-node{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.stages li.current .stage-node{border-color:var(--accent);box-shadow:0 0 0 5px #b8ff3d1a,0 0 18px #b8ff3d59;color:var(--accent)}.stages li.current,.stages li.done{color:var(--text)}.stages li.viewing .stage-name{color:var(--accent)}.stages li.clickable:hover .stage-node{box-shadow:0 0 0 5px #b8ff3d1f;transform:translateY(-1px)}@media(max-width:640px){.stages{--node:28px}.stage-name{font-size:11px;line-height:1.25}}.deliverables{align-items:center;flex-wrap:wrap;gap:.6rem;margin-top:.6rem}.deliverables a{font-family:ui-monospace,monospace}.stages li.clickable{cursor:pointer}.stages li:not(.clickable){cursor:default;opacity:.7}.wizard-note{margin:-.4rem 0 .8rem}a.button,button.button{background:var(--accent);border:1px solid var(--accent);border-radius:8px;color:var(--accent-contrast);display:inline-block;font-weight:500;padding:.55rem .9rem;text-decoration:none}a.button:hover,button.button:hover:not(:disabled){opacity:.9}.cards{align-items:stretch;display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.main-nav{display:flex;gap:24px;margin-left:20px}.main-nav a{color:var(--text-muted);font-weight:600;padding:4px 0;position:relative;text-decoration:none}.main-nav a.active,.main-nav a:hover{color:#fff}.main-nav a.active:after{background:var(--accent);border-radius:2px;bottom:-3px;content:"";height:2px;left:0;position:absolute;right:0}.header-spacer{flex:1}.signin-link{border-radius:9px;font-weight:800;padding:8px 16px}.highlight.is-note{background:linear-gradient(0deg,#a78bfa0f,#a78bfa0f),var(--surface);border:1px dashed #a78bfa}.badge.note-badge{border-color:#a78bfa}.badge.note-badge,.highlight.is-note .media .num{background:#a78bfa;color:#120b24}.kind-toggle{border:1px solid var(--border);border-radius:999px;display:inline-flex;overflow:hidden}.kind-toggle button{background:transparent;border:0;border-radius:0;box-shadow:none;color:var(--text-muted);font-size:.78rem;padding:.2rem .6rem}.kind-toggle button.on{background:var(--accent);color:var(--accent-contrast)}.kind-toggle button.on.note{background:#a78bfa;color:#120b24}.err[data-v-c4b347f2]{margin:4rem auto 0;max-width:640px}.err h1[data-v-c4b347f2]{font-size:clamp(1.6rem,5vw,2.3rem);margin:.4rem 0 .6rem}.eyebrow[data-v-c4b347f2]{color:var(--accent);font-size:12px;font-weight:900;letter-spacing:.15em;text-transform:uppercase}
