.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;transition:background var(--transition),color var(--transition),border-color var(--transition),transform var(--transition);white-space:nowrap;border:1px solid transparent;cursor:pointer;font-family:inherit}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--color-accent);color:#fff;box-shadow:0 2px 10px var(--color-accent-glow)}.btn--primary:hover{background:var(--color-accent-hover)}.btn--secondary{background:var(--color-surface-2);color:var(--color-text-primary);border-color:var(--color-border)}.btn--secondary:hover{background:var(--color-surface-3)}.btn--ghost{background:transparent;color:var(--color-text-secondary)}.btn--ghost:hover{background:var(--color-surface-2);color:var(--color-text-primary)}.btn--danger{background:transparent;color:var(--color-error);border-color:rgba(248,113,113,.3)}.btn--danger:hover{background:rgba(248,113,113,.12)}.btn--block{width:100%}.btn--sm{padding:var(--space-1) var(--space-3)}.btn--lg{padding:var(--space-3) var(--space-6);font-size:var(--text-base)}.badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:3px 10px;font-size:var(--text-xs);font-weight:600;line-height:1}.badge,.badge-dot{border-radius:var(--radius-full)}.badge-dot{width:6px;height:6px;background:currentColor}.badge--published{color:var(--color-published);background:rgba(74,222,128,.12)}.badge--draft{color:var(--color-draft);background:rgba(136,145,184,.12)}.badge--archived{color:var(--color-archived);background:rgba(248,113,113,.12)}.badge--accent{color:var(--color-accent);background:var(--color-accent-muted)}.badge--flower{color:var(--color-flower);background:rgba(249,168,212,.12)}.badge--success{color:var(--color-success);background:rgba(74,222,128,.12)}.badge--warning{color:var(--color-warning);background:rgba(251,191,36,.12)}.badge--muted{color:var(--color-text-muted);background:rgba(136,145,184,.12)}.badge--verified{color:var(--color-published);background:rgba(74,222,128,.12)}.card{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm)}.card+.card{margin-top:var(--space-4)}.card-title{font-size:var(--text-sm);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-4)}.form-field{margin-bottom:var(--space-5)}.form-field label{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.form-hint{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-2)}.input,.select,.textarea{width:100%;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-3);font-size:var(--text-sm);color:var(--color-text-primary);transition:border-color var(--transition),box-shadow var(--transition);font-family:inherit}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-muted)}.input::placeholder,.textarea::placeholder{color:var(--color-text-muted)}.textarea{resize:vertical;line-height:var(--leading-normal)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238891b8' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;padding-right:var(--space-8);cursor:pointer}.form-row{display:flex;gap:var(--space-4)}.form-row .form-field{flex:1 1}.toggle{position:relative;width:40px;height:22px;border-radius:var(--radius-full);background:var(--color-surface-3);transition:background var(--transition);flex-shrink:0;cursor:pointer;border:none}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:var(--radius-full);background:#fff;transition:transform var(--transition);box-shadow:var(--shadow-sm)}.toggle.on{background:var(--color-accent)}.toggle.on:after{transform:translateX(18px)}.toggle-field{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) 0}.toggle-field .toggle-label{font-size:var(--text-sm);font-weight:500}.toggle-field .toggle-desc{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:2px}.tabs{display:flex;align-items:center;gap:var(--space-1);border-bottom:1px solid var(--color-border-subtle);padding:0 var(--space-8);overflow-x:auto;flex-shrink:0}.tab{position:relative;padding:var(--space-3) var(--space-3);font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary);white-space:nowrap;transition:color var(--transition);margin-bottom:-1px;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer}.tab:hover{color:var(--color-text-primary)}.tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.tab-content{animation:fadeIn var(--transition)}.dialog-backdrop{position:fixed;inset:0;background:rgba(6,8,14,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;z-index:200}.dialog-backdrop.open{display:flex;animation:fadeIn var(--transition)}.dialog{width:440px;max-width:calc(100vw - 40px);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);overflow:hidden}.dialog-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border-subtle);font-size:var(--text-lg);font-weight:600}.dialog-body{padding:var(--space-6);font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-normal)}.dialog-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border-subtle);justify-content:flex-end}.dialog-context,.dialog-footer{display:flex;gap:var(--space-2)}.dialog-context{align-items:center;padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--color-text-secondary);margin-bottom:var(--space-5)}.dialog-context-icon{font-size:14px}.dialog-context-label{font-weight:500;color:var(--color-text-muted)}.dialog-context-value{font-weight:600;color:var(--color-text-primary)}.dialog-context-value.readonly{background:var(--color-surface-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:2px 8px;color:var(--color-text-primary);font-size:var(--text-xs);font-weight:500}.dialog-title{font-size:var(--text-base);font-weight:600;color:var(--color-text-primary);margin-bottom:var(--space-5)}.dialog-field-error{font-size:var(--text-xs);color:var(--color-error);margin-top:var(--space-1);display:flex;align-items:center;gap:4px}.input-error{box-shadow:0 0 0 3px rgba(248,113,113,.15)!important}.input-error,.input-error:focus{border-color:var(--color-error)!important}.input-error:focus{box-shadow:0 0 0 3px rgba(248,113,113,.2)!important}.version-item{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);transition:background var(--transition)}.version-item:hover{background:var(--color-surface)}.version-dot{width:8px;height:8px;border-radius:50%;background:var(--color-accent);margin-top:6px;flex-shrink:0}.version-item .v-title{color:var(--color-text-primary);font-weight:500}.version-item .v-meta{font-size:var(--text-xs);color:var(--color-text-muted)}.context-menu{position:fixed;width:200px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-2);z-index:300;display:none;animation:fadeIn .12s ease}.context-menu.open{display:block}.context-menu-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition),color var(--transition);background:none;border:none;width:100%;text-align:left}.context-menu-item:hover{background:var(--color-surface-3);color:var(--color-text-primary)}.context-menu-item.danger{color:var(--color-error)}.context-menu-item.danger:hover{background:rgba(248,113,113,.12)}.context-menu-sep{height:1px;background:var(--color-border-subtle);margin:var(--space-2) 0}.toast-container{position:fixed;bottom:var(--space-6);right:var(--space-6);display:flex;flex-direction:column;gap:var(--space-2);z-index:400}.toast{align-items:center;gap:var(--space-3);min-width:260px;padding:var(--space-3) var(--space-4);background:var(--color-surface-3);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-size:var(--text-sm);animation:fadeIn var(--transition)}.toast,.toast-icon{display:flex}.toast--success{border-left:3px solid var(--color-success)}.toast--info{border-left:3px solid var(--color-info)}.upload-zone{border:1.5px dashed var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8);text-align:center;color:var(--color-text-muted);transition:border-color var(--transition),background var(--transition);cursor:pointer;background:var(--color-surface)}.upload-zone:hover{border-color:var(--color-accent);color:var(--color-text-secondary)}.upload-zone.dragover{border-color:var(--color-accent);background:var(--color-accent-muted);color:var(--color-accent)}.upload-zone-icon{font-size:28px;margin-bottom:var(--space-2)}.upload-zone-title{font-size:var(--text-sm);color:var(--color-text-secondary)}.upload-zone-hint{font-size:var(--text-xs);margin-top:var(--space-1)}.stamp-artwork-section{margin-bottom:var(--space-6)}.stamp-artwork-preview{align-items:center;gap:var(--space-3)}.stamp-artwork-image{width:160px;height:160px;border-radius:var(--radius-xl);border:2px solid var(--color-border);background-color:var(--color-surface-2);display:block}.stamp-artwork-filename{font-size:var(--text-xs);color:var(--color-text-secondary);text-align:center;max-width:200px;word-break:break-all}.stamp-artwork-placeholder{width:160px;height:160px;border:1.5px dashed var(--color-border);border-radius:var(--radius-xl);gap:var(--space-2);transition:border-color var(--transition),background var(--transition);color:var(--color-text-muted)}.stamp-artwork-placeholder:hover{color:var(--color-text-secondary)}.journey-stamp-cell{display:flex;align-items:center;gap:var(--space-2)}.journey-stamp-thumb{width:32px;height:32px;border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-surface-2);background-repeat:no-repeat;flex-shrink:0}.journey-stamp-thumb--placeholder{background:linear-gradient(135deg,#6c8aff,#a78bfa);opacity:.6}.journey-stamp-name{font-size:var(--text-xs);color:var(--color-text-secondary);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stamp-reward-preview{margin-top:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);background:var(--color-surface)}.stamp-reward-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.stamp-reward-label{font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);letter-spacing:.05em;white-space:nowrap}.stamp-reward-divider{flex:1 1;height:1px;background:var(--color-border-subtle)}.stamp-reward-body{display:flex;align-items:flex-start;gap:var(--space-4)}.stamp-reward-thumb{width:80px;height:80px;border-radius:var(--radius-xl);border:2px solid var(--color-border);background-color:var(--color-surface-2);background-repeat:no-repeat;flex-shrink:0}.stamp-reward-thumb--placeholder{background:linear-gradient(135deg,#6c8aff,#a78bfa);opacity:.6}.stamp-reward-info{flex:1 1;min-width:0}.stamp-reward-name{font-size:var(--text-sm);font-weight:600;color:var(--color-text-primary)}.stamp-reward-memory,.stamp-reward-name{margin-bottom:var(--space-2)}.stamp-reward-memory-label{font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:var(--space-1)}.stamp-reward-memory-text{font-style:italic}.stamp-reward-flowers,.stamp-reward-memory-text{font-size:var(--text-sm);color:var(--color-text-secondary)}.stamp-reward-flowers{display:inline-flex;align-items:center;gap:var(--space-1)}.stamp-reward-flowers-icon{font-size:14px}.stamp-reward-footer{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--color-border-subtle)}.stamp-reward-source{font-size:var(--text-xs);color:var(--color-text-muted)}.stamp-presentation-preview{margin-top:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);background:var(--color-surface)}.stamp-presentation-preview--empty{display:flex;align-items:center;justify-content:center;min-height:80px}.stamp-presentation-preview-empty-text{font-size:var(--text-sm);color:var(--color-text-muted);font-style:italic}.stamp-presentation-preview-header{font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);letter-spacing:.05em;text-transform:uppercase;margin-bottom:var(--space-3)}.stamp-presentation-preview-body{display:flex;align-items:flex-start;gap:var(--space-3)}.stamp-presentation-preview-thumb{width:64px;height:64px;border-radius:var(--radius-xl);border:2px solid var(--color-border);background-color:var(--color-surface-2);background-repeat:no-repeat;background-position:50%;flex-shrink:0}.stamp-presentation-preview-thumb--placeholder{background:linear-gradient(135deg,#6c8aff,#a78bfa);opacity:.6}.stamp-presentation-preview-details{flex:1 1;min-width:0}.stamp-presentation-preview-name{font-size:var(--text-sm);font-weight:600;color:var(--color-text-primary);margin-bottom:var(--space-1)}.stamp-presentation-preview-memory{font-size:var(--text-xs);color:var(--color-text-secondary);font-style:italic}.stamp-presentation-preview-footer{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border-subtle)}.stamp-presentation-preview-source{font-size:var(--text-xs);color:var(--color-text-muted)}.additional-reward-section{margin-top:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);background:var(--color-surface)}.additional-reward-label{font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);letter-spacing:.05em;text-transform:uppercase;margin-bottom:var(--space-3)}.additional-reward-row{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2)}.additional-reward-icon{font-size:18px}.additional-reward-unit{font-size:var(--text-sm);color:var(--color-text-secondary)}.additional-reward-hint{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-1)}.destination-stamp-selector-label{font-size:var(--text-sm);font-weight:500;color:var(--color-text-primary);margin-bottom:var(--space-3)}.table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.table th{text-align:left;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border)}.table td,.table th{padding:var(--space-3) var(--space-4)}.table td{border-bottom:1px solid var(--color-border-subtle);vertical-align:middle}.table tbody tr:hover,.table tr:hover td{background:var(--color-surface)}.table .row-actions{display:flex;gap:var(--space-1);opacity:0;transition:opacity var(--transition)}.table tr:hover .row-actions{opacity:1}.icon-btn{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--color-text-muted);transition:background var(--transition),color var(--transition);background:none;border:none;cursor:pointer;font-size:var(--text-xs)}.icon-btn:hover{background:var(--color-surface-3);color:var(--color-text-primary)}.icon-btn.danger:hover{color:var(--color-error)}.stat-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) 0;font-size:var(--text-sm);border-bottom:1px solid var(--color-border-subtle)}.stat-row:last-child{border-bottom:none}.stat-row .stat-label{color:var(--color-text-muted)}.stat-row .stat-value{font-weight:500}.section-heading{font-size:var(--text-lg);font-weight:600;margin-bottom:var(--space-4)}.divider{height:1px;background:var(--color-border-subtle);margin:var(--space-5) 0}.pill-group{display:flex;gap:var(--space-2);flex-wrap:wrap}.pill{padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--text-sm);background:var(--color-surface-2);border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition);font-family:inherit}.pill:hover{color:var(--color-text-primary)}.pill.active,.pill:hover{border-color:var(--color-accent)}.pill.active{background:var(--color-accent-muted);color:var(--color-accent);font-weight:500}.chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:4px 10px;border-radius:var(--radius-full);background:var(--color-surface-3);font-size:var(--text-xs);color:var(--color-text-primary)}.chip .chip-x{cursor:pointer;opacity:.6}.chip .chip-x:hover{opacity:1}.info-callout{display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-accent-muted);border:1px solid rgba(108,138,255,.25);font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-normal)}.info-callout.warning{background:rgba(251,191,36,.1);border-color:rgba(251,191,36,.25)}.welcome{max-width:760px;margin:0 auto;padding:var(--space-12) var(--space-6);animation:fadeIn .3s ease}.welcome-logo{width:64px;height:64px;border-radius:var(--radius-xl);background:linear-gradient(135deg,var(--color-accent),#a78bfa);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-5);box-shadow:0 8px 30px var(--color-accent-glow)}.welcome h1{font-size:var(--text-3xl);letter-spacing:-.03em}.welcome .tagline{font-size:var(--text-lg);color:var(--color-text-secondary);margin-top:var(--space-2);margin-bottom:var(--space-8)}.hierarchy-diagram{gap:var(--space-3);flex-wrap:wrap;padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);margin-bottom:var(--space-8)}.hier-node,.hierarchy-diagram{display:flex;align-items:center}.hier-node{gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500}.hier-arrow{color:var(--color-text-muted)}.hier-split{display:flex;flex-direction:column;gap:var(--space-2)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:var(--space-4);gap:var(--space-4);margin-bottom:var(--space-8)}.stat-card{background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);padding:var(--space-5)}.stat-card .stat-num{font-size:var(--text-2xl);font-weight:700}.stat-card .stat-name{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-1)}.quick-card{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-5);background:linear-gradient(135deg,var(--color-surface-2),var(--color-surface));border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:border-color var(--transition),transform var(--transition);cursor:pointer}.quick-card:hover{border-color:var(--color-accent);transform:translateY(-2px)}.quick-card-thumb{width:56px;height:56px;border-radius:var(--radius-md);background:linear-gradient(160deg,#3b4a7a,#6c8aff 60%,#a78bfa);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:24px}.quick-card-body{flex:1 1}.quick-card-title{font-size:var(--text-lg);font-weight:600}.quick-card-meta{font-size:var(--text-sm);color:var(--color-text-secondary)}.summary-panel{max-width:720px;animation:fadeIn .25s ease}.summary-hero{height:160px;border-radius:var(--radius-lg);background:linear-gradient(160deg,#26304f,#3b4a7a 50%,#6c8aff);position:relative;overflow:hidden;margin-bottom:var(--space-5)}.summary-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(15,17,23,.7),transparent)}.summary-hero .hero-mountains{position:absolute;bottom:0;left:0;right:0;height:60px;background:linear-gradient(135deg,transparent 40%,rgba(15,17,23,.4));-webkit-clip-path:polygon(0 100%,15% 40%,30% 70%,45% 20%,60% 60%,75% 30%,90% 65%,100% 45%,100% 100%);clip-path:polygon(0 100%,15% 40%,30% 70%,45% 20%,60% 60%,75% 30%,90% 65%,100% 45%,100% 100%);background-color:rgba(15,17,23,.5)}.rte-container{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);display:flex;flex-direction:column;transition:border-color var(--transition),box-shadow var(--transition)}.rte-container:focus-within{border-color:var(--color-accent);box-shadow:var(--shadow-md),0 0 0 3px var(--color-accent-muted)}.rte-topbar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-subtle);flex-wrap:wrap}.rte-topbar .autosave{margin-left:auto;font-size:var(--text-xs);color:var(--color-text-muted);display:flex;align-items:center;gap:var(--space-2)}.autosave.saving{color:var(--color-warning)}.autosave.saved{color:var(--color-success)}.rte-toolbar{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-subtle)}.rte-toolbar-btn{min-width:30px;height:30px;padding:0 var(--space-2);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--text-sm);transition:background var(--transition),color var(--transition);background:none;border:none}.rte-toolbar-btn:hover{color:var(--color-text-primary)}.rte-toolbar-btn.active{background:var(--color-accent-muted);color:var(--color-accent)}.rte-toolbar-btn b{font-weight:700}.rte-toolbar-btn i{font-style:italic}.rte-toolbar-btn u{text-decoration:underline}.rte-toolbar-sep{height:18px;margin:0 var(--space-2)}.rte-canvas{padding:var(--space-8) var(--space-8) var(--space-10);min-height:380px;font-size:var(--text-lg);line-height:var(--leading-relaxed);color:var(--color-text-primary);overflow-y:auto;max-height:62vh}.rte-canvas,.rte-canvas:focus{outline:none}.rte-canvas>*{max-width:680px;margin-left:auto;margin-right:auto}.rte-canvas p{margin-bottom:var(--space-5)}.rte-canvas p:only-child:empty:before,.rte-canvas:empty:before{content:attr(data-rte-placeholder);color:var(--color-text-muted);pointer-events:none}.rte-canvas[data-rte-placeholder]:empty:before{content:attr(data-rte-placeholder)}.rte-canvas a{color:var(--color-accent);text-decoration:underline;text-underline-offset:2px}.rte-canvas a:hover{color:var(--color-accent-hover)}.rte-canvas h1{font-size:var(--text-2xl);margin:var(--space-6) 0 var(--space-3)}.rte-canvas h2{font-size:var(--text-xl);margin:var(--space-5) 0 var(--space-3)}.rte-canvas h3{font-size:var(--text-lg);font-weight:600;margin:var(--space-4) 0 var(--space-2)}.rte-canvas blockquote{border-left:3px solid var(--color-accent);padding-left:var(--space-4);margin:var(--space-4) 0;color:var(--color-text-secondary);font-style:italic}.rte-canvas ol,.rte-canvas ul{margin:var(--space-4) 0;padding-left:var(--space-6)}.rte-canvas ul{list-style:disc}.rte-canvas ol{list-style:decimal}.rte-canvas li{margin-bottom:var(--space-2)}.rte-canvas hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-6) 0}.rte-inline-image{width:100%;height:200px;border-radius:var(--radius-md);background:linear-gradient(135deg,#2a3350,#4a5a8a 60%,#6c8aff);margin:var(--space-5) 0;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.7);font-size:var(--text-sm);position:relative}.rte-inline-image:after{content:"🖼 Inline image — Đồng Văn stone courtyard";position:absolute;bottom:10px;left:12px;font-size:var(--text-xs);color:rgba(255,255,255,.8)}.rte-footer{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border-subtle);background:var(--color-surface-2);font-size:var(--text-xs);color:var(--color-text-muted)}.rte-footer .footer-saved{margin-left:auto;color:var(--color-success)}.location-system{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5)}.location-system-header{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-base);font-weight:600;margin-bottom:var(--space-4)}.location-type-pills{margin-bottom:var(--space-5)}.mini-map{height:180px;border-radius:var(--radius-md);background:linear-gradient(rgba(108,138,255,.06),rgba(108,138,255,.06)),repeating-linear-gradient(0deg,transparent,transparent 24px,rgba(108,138,255,.08) 0,rgba(108,138,255,.08) 25px),repeating-linear-gradient(90deg,transparent,transparent 24px,rgba(108,138,255,.08) 0,rgba(108,138,255,.08) 25px),radial-gradient(circle at 60% 40%,#2a3a5a,#141824);position:relative;border:1px solid var(--color-border);overflow:hidden;display:none;margin-top:var(--space-4)}.mini-map.show{display:block;animation:fadeIn var(--transition)}.mini-map .map-pin{position:absolute;top:40%;left:60%;transform:translate(-50%,-100%);font-size:26px;filter:drop-shadow(0 4px 6px rgba(0,0,0,.5))}.mini-map .map-pin:after{content:"";position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);width:24px;height:8px;background:radial-gradient(ellipse,rgba(0,0,0,.4),transparent 70%)}.mini-map .map-coords{position:absolute;bottom:8px;left:8px;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-secondary);background:rgba(15,17,23,.7);padding:2px 8px;border-radius:var(--radius-sm)}.audio-player{gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.audio-play-btn,.audio-player{display:flex;align-items:center}.audio-play-btn{width:48px;height:48px;border-radius:50%;background:var(--color-accent);color:#fff;justify-content:center;flex-shrink:0;transition:background var(--transition),transform var(--transition);box-shadow:0 2px 12px var(--color-accent-glow);border:none;cursor:pointer;font-size:var(--text-sm)}.audio-play-btn:hover{background:var(--color-accent-hover);transform:scale(1.05)}.waveform{flex:1 1;display:flex;align-items:center;gap:2px;height:40px}.waveform .bar{flex:1 1;background:var(--color-surface-3);border-radius:2px;min-width:2px;transition:background var(--transition)}.waveform .bar.played{background:var(--color-accent)}.audio-time{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-secondary);flex-shrink:0}.audio-vol{color:var(--color-text-muted);display:flex}.companion-editor{animation:fadeIn var(--transition)}.companion-card{margin-top:var(--space-5);padding:var(--space-5);border-radius:var(--radius-lg);background:linear-gradient(135deg,rgba(108,138,255,.08),rgba(167,139,250,.06));border:1px solid var(--color-border)}.companion-card-tag{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-accent);text-transform:uppercase;letter-spacing:.05em}.companion-card-tag,.companion-card-title{font-weight:600;margin-bottom:var(--space-2)}.companion-card-title{font-size:var(--text-lg)}.companion-card-text{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-normal)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:var(--space-4);gap:var(--space-4)}.gallery-item{border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border);background:var(--color-surface-2)}.gallery-thumb{height:120px;display:flex;align-items:flex-end;padding:var(--space-3);font-size:var(--text-xs);color:rgba(255,255,255,.9);font-weight:500}.gallery-caption{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--color-text-secondary)}.stamp-preview{width:160px;height:160px;margin:0 auto var(--space-5)}.stops-header-row{display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-4) var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted)}.stops-count{font-weight:600;color:var(--color-text-secondary)}.stops-count .dot{margin:0 var(--space-2);opacity:.4}.stop-item{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-2);overflow:hidden;transition:border-color var(--transition)}.stop-item.open,.stop-item:hover{border-color:var(--color-accent)}.stop-item .stop-row{border:none;border-radius:0;background:transparent;margin:0}.stop-item .stop-row:hover{border:none}.stop-caret{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-muted);cursor:pointer;transition:transform var(--transition),color var(--transition);flex-shrink:0;background:none;border:none}.stop-caret:hover{color:var(--color-text-primary)}.stop-item.open .stop-caret{transform:rotate(90deg)}.stop-children{display:none;padding:var(--space-1) var(--space-4) var(--space-3) 52px;border-top:1px solid var(--color-border-subtle);background:var(--color-surface)}.stop-item.open .stop-children{display:block;animation:fadeIn var(--transition)}.stop-child{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);transition:background var(--transition);margin-top:var(--space-1)}.stop-child-icon,.stop-child:hover{background:var(--color-surface-2)}.stop-child-icon{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:1px solid var(--color-border-subtle);font-size:var(--text-sm);flex-shrink:0}.stop-child-name{font-size:var(--text-sm);font-weight:500;flex:1 1;min-width:0}.stop-child-meta{font-size:var(--text-xs);color:var(--color-text-muted);font-family:var(--font-mono)}.stop-child .icon-btn{opacity:0;transition:opacity var(--transition)}.stop-child:hover .icon-btn{opacity:1}.stop-child.optional .stop-child-name{color:var(--color-text-secondary)}.stop-child.empty{opacity:.55}.checklist-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;font-size:var(--text-sm)}.checklist-mark{width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0}.checklist-mark.done{background:rgba(74,222,128,.15);color:var(--color-success)}.checklist-mark.todo{border:1.5px solid var(--color-border);color:var(--color-text-muted)}.checklist-mark.optional{border:1.5px dashed var(--color-border);color:var(--color-text-muted)}.checklist-label{color:var(--color-text-secondary)}.checklist-item.is-done .checklist-label{color:var(--color-text-primary)}.info-type-bar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap}.info-type-bar .label{font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:500}.audio-transcript-note{display:flex;gap:var(--space-2);color:var(--color-text-muted);margin-top:var(--space-2)}.audio-transcript-note,.rte-block-label{align-items:center;font-size:var(--text-xs)}.rte-block-label{display:inline-flex;gap:6px;height:30px;padding:0 var(--space-3);border-radius:var(--radius-sm);font-weight:500;color:var(--color-text-secondary);background:var(--color-surface)}.rte-block-label,.rte-slash-menu{border:1px solid var(--color-border)}.rte-slash-menu{position:fixed;width:264px;background:var(--color-surface-2);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-2);z-index:350;display:none}.rte-slash-menu.open{display:block;animation:fadeIn .12s ease}.rte-slash-header{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.rte-slash-header,.rte-slash-item{padding:var(--space-2) var(--space-3)}.rte-slash-item{display:flex;align-items:center;gap:var(--space-3);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition)}.rte-slash-item.active,.rte-slash-item:hover{background:var(--color-surface-3)}.rte-slash-icon{width:32px;height:32px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:var(--color-surface);border:1px solid var(--color-border);font-size:var(--text-xs);font-weight:600;color:var(--color-text-secondary)}.rte-slash-body{display:flex;flex-direction:column;line-height:1.3}.rte-slash-label{font-size:var(--text-sm);font-weight:500;color:var(--color-text-primary)}.rte-slash-hint{font-size:var(--text-xs);color:var(--color-text-muted)}.doc-header{max-width:680px;margin:0 auto var(--space-5);padding:0 var(--space-8)}.doc-title{width:100%;border:none;background:transparent;color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--text-3xl);font-weight:700;letter-spacing:-.02em;line-height:1.2;outline:none;padding:0}.doc-title::placeholder{color:var(--color-text-muted)}.doc-subtitle{width:100%;border:none;background:transparent;color:var(--color-text-secondary);font-family:var(--font-sans);font-size:var(--text-lg);outline:none;padding:0;margin-top:var(--space-2)}.editor-utilbar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap}.editor-utilbar .autosave{margin-left:auto;font-size:var(--text-xs)}.util-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:500;color:var(--color-text-secondary);border:1px solid var(--color-border);background:var(--color-surface-2);transition:all var(--transition);cursor:pointer}.util-btn:hover{color:var(--color-text-primary);border-color:var(--color-accent)}.util-btn.active{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-accent-muted)}.reading-layout.focus .reading-preview{display:none}.reading-layout.focus .reading-editor{max-width:860px;margin:0 auto}.reading-layout.focus .rte-canvas{max-height:74vh}.companion-editor.disabled{opacity:.4;pointer-events:none;filter:grayscale(.3)}.companion-empty{display:none;padding:var(--space-10) var(--space-6);text-align:center;border:1.5px dashed var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-muted);background:var(--color-surface)}.companion-empty .ce-icon{font-size:32px;margin-bottom:var(--space-3)}.companion-empty .ce-title{font-size:var(--text-base);color:var(--color-text-secondary);font-weight:500}.companion-empty .ce-hint{font-size:var(--text-sm);margin-top:var(--space-1)}.companion-wrap.off .companion-editor{display:none}.companion-wrap.off .companion-empty{display:block}.reading-layout{display:flex;gap:var(--space-6);align-items:flex-start}.reading-editor{flex:1 1;min-width:380px}.reading-preview{width:300px;flex-shrink:0;position:-webkit-sticky;position:sticky;top:0}.reading-preview .phone-frame{margin:0 auto}@media (max-width:1200px){.reading-preview{display:none}}.availability-card{margin-bottom:var(--space-4)}.availability-card .card-desc{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-normal);margin:calc(-1 * var(--space-2)) 0 var(--space-4)}.radio-options{display:flex;flex-direction:column}.radio-option{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-2);margin:0 calc(-1 * var(--space-2));border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition)}.radio-option:hover{background:var(--color-surface)}.radio-option input[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;margin-top:2px;flex-shrink:0;border:2px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);transition:border-color var(--transition),box-shadow var(--transition)}.radio-option input[type=radio]:checked{border-color:var(--color-accent);box-shadow:inset 0 0 0 4px var(--color-accent)}.radio-option input[type=radio]:focus-visible{outline:none;box-shadow:inset 0 0 0 4px var(--color-accent),0 0 0 3px var(--color-accent-muted)}.radio-option-content{flex:1 1;min-width:0}.radio-option-label{display:block;font-size:var(--text-sm);font-weight:500;color:var(--color-text-primary);line-height:var(--leading-tight)}.radio-option-desc{display:block;font-size:var(--text-xs);color:var(--color-text-muted);margin-top:2px;line-height:var(--leading-normal)}.radio-options .divider{margin:var(--space-2) 0}.flower-cost-panel{max-height:0;opacity:0;overflow:hidden;transition:max-height .28s ease,opacity .28s ease,margin-top .28s ease;margin-top:0}.flower-cost-panel.is-visible{max-height:120px;opacity:1;margin-top:var(--space-4)}.flower-cost-panel .form-field{margin-bottom:0;max-width:200px}.guide-cards-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--space-4);gap:var(--space-4)}.gcard{position:relative}.gcard .card{height:100%}.gcard-head{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.gcard-drag{color:var(--color-text-muted);cursor:-webkit-grab;cursor:grab;font-size:var(--text-sm)}.gcard-icon{width:34px;height:34px;flex-shrink:0;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:16px;background:var(--color-surface);border:1px solid var(--color-border)}.gcard-titles{flex:1 1;min-width:0;line-height:1.25}.gcard-title{font-size:var(--text-sm);font-weight:600}.gcard-type{font-size:var(--text-xs);color:var(--color-text-muted)}.gcard-body{display:flex;flex-direction:column;gap:var(--space-3)}.gcard .form-field{margin-bottom:0}.field-inline{display:flex;gap:var(--space-3)}.field-inline .form-field{flex:1 1}.kv-label{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:500;margin-bottom:var(--space-1);display:block}.price-line{display:flex;align-items:baseline;gap:var(--space-2);font-size:var(--text-2xl);font-weight:700;letter-spacing:-.02em}.price-line .cur{font-weight:500}.price-line .cur,.tip-list{font-size:var(--text-sm);color:var(--color-text-secondary)}.tip-list{margin:0;padding-left:var(--space-5);line-height:var(--leading-normal)}.tip-list li{margin-bottom:var(--space-2)}.gcard-add{border:1.5px dashed var(--color-border);border-radius:var(--radius-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);color:var(--color-text-muted);background:var(--color-surface);min-height:140px;cursor:pointer;transition:border-color var(--transition),color var(--transition)}.gcard-add:hover{border-color:var(--color-accent);color:var(--color-accent)}.gcard-add .plus{font-size:26px}.gcard-library{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-4)}.section-sub{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-5);max-width:640px;line-height:var(--leading-normal)}.preview-panel{width:320px;flex-shrink:0;border-left:1px solid var(--color-border-subtle);background:var(--color-surface);padding:var(--space-5);overflow-y:auto;display:flex;flex-direction:column;align-items:center}.preview-panel-title{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:var(--space-4);align-self:flex-start}.phone-frame{width:260px;height:540px;background:#05060a;border-radius:36px;padding:10px;box-shadow:var(--shadow-lg),inset 0 0 0 2px #1c2030;position:relative;flex-shrink:0}.phone-frame.large{width:300px;height:620px}.phone-notch{top:10px;width:110px;height:24px;background:#05060a;border-radius:0 0 16px 16px;z-index:5}.phone-notch,.phone-notch:after{position:absolute;left:50%;transform:translateX(-50%)}.phone-notch:after{content:"";top:8px;width:40px;height:5px;background:#1c2030;border-radius:3px}.phone-screen{width:100%;height:100%;border-radius:28px;overflow:hidden;background:var(--color-bg);position:relative;display:flex;flex-direction:column}.app-preview{flex:1 1;overflow-y:auto;overflow-x:hidden}.app-preview::-webkit-scrollbar{width:0}.app-hero{height:150px;background:linear-gradient(160deg,#26304f,#3b4a7a 45%,#6c8aff 90%);position:relative}.app-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,var(--color-bg),transparent 60%)}.app-hero .hero-mtn{position:absolute;bottom:0;left:0;right:0;height:50px;background:rgba(15,17,23,.55);-webkit-clip-path:polygon(0 100%,12% 45%,26% 75%,40% 25%,55% 65%,70% 35%,85% 70%,100% 40%,100% 100%);clip-path:polygon(0 100%,12% 45%,26% 75%,40% 25%,55% 65%,70% 35%,85% 70%,100% 40%,100% 100%)}.app-body{padding:0 var(--space-4) var(--space-6);position:relative;margin-top:-20px}.app-title{font-size:var(--text-xl);font-weight:700;letter-spacing:-.02em}.app-subtitle{font-size:var(--text-sm)}.app-pill,.app-subtitle{color:var(--color-text-secondary);margin-bottom:var(--space-3)}.app-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--radius-full);background:var(--color-surface-2);font-size:10px}.app-text{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--color-text-secondary);margin-bottom:var(--space-3)}.app-flower{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);background:rgba(249,168,212,.12);color:var(--color-flower);font-size:var(--text-xs);font-weight:600;margin-top:var(--space-2)}.fp-hero-strip{display:flex;gap:6px;overflow-x:auto;padding:6px 8px 4px;scrollbar-width:none}.fp-hero-strip::-webkit-scrollbar{display:none}.fp-hero-card{flex:0 0 auto;width:72px;display:flex;flex-direction:column;gap:4px}.fp-hero-thumb{width:72px;height:48px}.fp-hero-label{color:#a0aec0}.fp-hero-label,.fp-hero-name{font-size:9px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fp-hero-name{color:#e2e8f0}.fp-post-strip{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.06)}.fp-post-strip-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#718096;margin-bottom:6px}.fp-post-card{display:flex;gap:8px;align-items:flex-start;margin-bottom:8px}.fp-post-thumb{width:48px;height:48px;border-radius:6px;flex-shrink:0}.fp-post-info{flex:1 1;min-width:0}.fp-post-title{font-size:11px;font-weight:600;color:#e2e8f0;line-height:1.3;-webkit-line-clamp:2}.fp-post-desc,.fp-post-title{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.fp-post-desc{font-size:10px;color:#718096;margin-top:2px;-webkit-line-clamp:1}.app-stop-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2);background:var(--color-surface-2);border-radius:var(--radius-md);margin-bottom:var(--space-2)}.app-stop-thumb{width:40px;height:40px;border-radius:var(--radius-sm);background:linear-gradient(135deg,#3b4a7a,#6c8aff);flex-shrink:0}.app-stop-name{font-size:var(--text-xs);font-weight:600}.app-stop-sub{font-size:10px;color:var(--color-text-muted)}.app-locked{flex:1 1;display:none;flex-direction:column;padding:var(--space-6);text-align:center}.app-locked,.app-locked-illus{align-items:center;justify-content:center}.app-locked-illus{width:90px;height:90px;border-radius:50%;background:radial-gradient(circle,var(--color-surface-3),var(--color-surface));border:1px solid var(--color-border);display:flex;margin-bottom:var(--space-4)}.app-locked h3{font-size:var(--text-lg);margin-bottom:var(--space-2)}.app-locked p{color:var(--color-text-secondary);margin-bottom:var(--space-5)}.app-cta,.app-locked p{font-size:var(--text-sm)}.app-cta{width:100%;padding:var(--space-3);border-radius:var(--radius-md);font-weight:600;margin-bottom:var(--space-2);cursor:pointer;border:none;font-family:inherit}.app-cta.primary{background:var(--color-accent);color:#fff;display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.app-cta.secondary{background:var(--color-surface-2);color:var(--color-flower);border:1px solid var(--color-border)}.phone-screen[data-view=locked] .app-preview{display:none}.phone-screen[data-view=locked] .app-locked{display:flex}.preview-toggle{display:flex;gap:var(--space-1);margin-top:var(--space-4);padding:var(--space-1);background:var(--color-surface-2);border-radius:var(--radius-md);border:1px solid var(--color-border)}.preview-toggle button{padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:500;color:var(--color-text-secondary);transition:background var(--transition),color var(--transition);background:none;border:none;cursor:pointer}.preview-toggle button.active{background:var(--color-accent);color:#fff}.preview-context-label{display:inline-flex;align-items:center;padding:2px 12px;border-radius:var(--radius-full);font-size:11px;font-weight:600;letter-spacing:.03em;background:rgba(108,138,255,.12);color:var(--color-accent);margin-bottom:var(--space-3);text-transform:uppercase}.preview-stage{display:flex;flex-direction:column;align-items:center;padding:var(--space-6);animation:fadeIn var(--transition)}.phone-statusbar{height:30px;padding:8px 20px 0;display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:600;color:var(--color-text-primary);flex-shrink:0;position:relative;z-index:6}.phone-statusbar .sb-time{letter-spacing:.02em}.phone-statusbar .sb-icons{display:flex;align-items:center;gap:5px;font-size:10px;letter-spacing:1px}.phone-statusbar .sb-batt{width:20px;height:10px;border:1px solid var(--color-text-secondary);border-radius:2px;position:relative;padding:1px}.phone-statusbar .sb-batt:after{content:"";position:absolute;right:-3px;top:3px;width:2px;height:4px;background:var(--color-text-secondary);border-radius:0 1px 1px 0}.phone-statusbar .sb-batt span{display:block;height:100%;width:75%;background:var(--color-success);border-radius:1px}.app-topbar{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);position:-webkit-sticky;position:sticky;top:0;background:linear-gradient(to bottom,var(--color-bg) 78%,transparent);z-index:4}.app-topbar .app-back{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background:rgba(255,255,255,.06);color:var(--color-text-primary);font-size:14px}.app-topbar .app-topbar-title{font-size:var(--text-sm);font-weight:600;color:var(--color-text-primary);flex:1 1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-flower-balance{display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border-radius:var(--radius-full);background:rgba(249,168,212,.14);color:var(--color-flower);font-size:11px;font-weight:700;flex-shrink:0}.app-miniplayer{display:flex;align-items:center;gap:var(--space-2);margin:var(--space-3) 0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-2);border:1px solid var(--color-border-subtle)}.app-miniplayer .mp-play{width:30px;height:30px;border-radius:var(--radius-full);background:var(--color-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}.app-miniplayer .mp-info{flex:1 1;min-width:0}.app-miniplayer .mp-title{font-size:11px;font-weight:600;color:var(--color-text-primary)}.app-miniplayer .mp-sub{font-size:10px;color:var(--color-text-muted)}.app-miniplayer .mp-wave{display:flex;align-items:center;gap:2px;height:18px}.app-miniplayer .mp-wave i{width:2px;border-radius:2px;background:var(--color-accent);opacity:.5}.app-tabbar{display:flex;align-items:stretch;border-top:1px solid var(--color-border-subtle);background:rgba(15,17,23,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-shrink:0;padding-bottom:6px}.app-tabbar .tabbar-item{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:7px 0 3px;color:var(--color-text-muted);font-size:9px;font-weight:500}.app-tabbar .tabbar-item .tb-icon{font-size:16px;line-height:1;filter:grayscale(1);opacity:.7}.app-tabbar .tabbar-item.active{color:var(--color-accent)}.app-tabbar .tabbar-item.active .tb-icon{filter:none;opacity:1}.locked-hint{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:var(--radius-full);background:var(--color-surface-2);color:var(--color-text-secondary);font-size:11px;margin-bottom:var(--space-4)}.locked-hint .locked-dist{color:var(--color-accent);font-weight:600}.map-workspace{flex:1 1;display:flex;min-height:0;overflow:hidden}.map-left{width:264px;flex-shrink:0;border-right:1px solid var(--color-border-subtle);background:var(--color-surface);overflow-y:auto;padding:var(--space-5)}.panel-label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:var(--space-3)}.layer-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-2);margin-bottom:var(--space-2);transition:border-color var(--transition)}.layer-row.active,.layer-row:hover{border-color:var(--color-accent)}.layer-row.active{background:var(--color-accent-muted)}.layer-icon{width:30px;height:30px;flex-shrink:0;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:15px;background:var(--color-surface);border:1px solid var(--color-border)}.layer-info{flex:1 1;min-width:0;line-height:1.25}.layer-name{font-size:var(--text-sm);font-weight:500}.layer-count{font-size:var(--text-xs);color:var(--color-text-muted)}.legend-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;font-size:var(--text-sm);color:var(--color-text-secondary)}.legend-swatch{width:22px;text-align:center;flex-shrink:0}.legend-line{width:22px;height:0;border-top:3px solid var(--color-accent);flex-shrink:0}.legend-circle{width:16px;height:16px;border-radius:50%;border:2px dashed var(--color-flower);flex-shrink:0;margin:0 3px}.map-center{flex:1 1;display:flex;flex-direction:column;min-width:0;background:var(--color-bg)}.map-toolbar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-border-subtle)}.map-search{flex:1 1;max-width:320px}.map-search input{padding-left:var(--space-8);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238891b8' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:12px}.map-canvas{flex:1 1;position:relative;overflow:hidden;background:linear-gradient(rgba(108,138,255,.05),rgba(108,138,255,.05)),repeating-linear-gradient(0deg,transparent,transparent 38px,rgba(108,138,255,.06) 0,rgba(108,138,255,.06) 39px),repeating-linear-gradient(90deg,transparent,transparent 38px,rgba(108,138,255,.06) 0,rgba(108,138,255,.06) 39px),radial-gradient(circle at 55% 42%,#263450,#141a28 75%)}.map-marker{position:absolute;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;cursor:pointer;z-index:3}.map-marker .mk-pin{font-size:24px;filter:drop-shadow(0 4px 6px rgba(0,0,0,.55));line-height:1}.map-marker .mk-label{margin-top:2px;font-size:10px;font-weight:600;color:var(--color-text-primary);background:rgba(15,17,23,.82);padding:2px 7px;border-radius:var(--radius-full);white-space:nowrap}.map-marker.selected .mk-pin{transform:scale(1.25)}.map-marker.selected .mk-label{background:var(--color-accent);color:#fff}.map-area{position:absolute;transform:translate(-50%,-50%);border-radius:50%;z-index:1}.map-area.discovery{border:2px dashed var(--color-flower);background:rgba(249,168,212,.1)}.map-area.polygon{border:2px solid var(--color-accent);background:rgba(108,138,255,.12);border-radius:var(--radius-md)}.map-selring{position:absolute;transform:translate(-50%,-50%);border-radius:50%;border:2px solid var(--color-accent);box-shadow:0 0 0 4px var(--color-accent-muted);z-index:2}.map-zoom{position:absolute;right:var(--space-4);bottom:var(--space-4);display:flex;flex-direction:column;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;z-index:5}.map-zoom button{width:34px;height:34px;font-size:var(--text-lg);color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer}.map-zoom button+button{border-top:1px solid var(--color-border-subtle)}.map-attrib{bottom:var(--space-3);font-family:var(--font-mono);color:var(--color-text-muted);background:rgba(15,17,23,.6);padding:2px 8px;border-radius:var(--radius-sm)}.map-attrib,.map-scalebar{position:absolute;left:var(--space-4);font-size:10px;z-index:5}.map-scalebar{bottom:var(--space-8);color:var(--color-text-secondary)}.map-scalebar .bar{height:4px;width:70px;border:1px solid var(--color-text-secondary);border-top:none}.map-right{width:312px;flex-shrink:0;border-left:1px solid var(--color-border-subtle);background:var(--color-surface);overflow-y:auto;padding:var(--space-5)}.obj-head{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.obj-thumb{width:44px;height:44px;border-radius:var(--radius-md);background:linear-gradient(135deg,#57534e,#292524);flex-shrink:0}.obj-name{font-size:var(--text-base);font-weight:600}.obj-type{font-size:var(--text-xs);color:var(--color-text-muted)}.mini-phone{width:100%;max-width:250px;margin:0 auto}.rel-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;font-size:var(--text-sm);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border-subtle)}.rel-item:last-child{border-bottom:none}.rel-item .badge{margin-left:auto}.app-map-mini{flex:1 1;position:relative;overflow:hidden;background:repeating-linear-gradient(0deg,transparent,transparent 22px,rgba(108,138,255,.07) 0,rgba(108,138,255,.07) 23px),repeating-linear-gradient(90deg,transparent,transparent 22px,rgba(108,138,255,.07) 0,rgba(108,138,255,.07) 23px),radial-gradient(circle at 55% 45%,#263450,#141a28 78%)}.app-map-mini .mm{position:absolute;transform:translate(-50%,-100%);font-size:16px;filter:drop-shadow(0 2px 3px rgba(0,0,0,.6))}.app-map-mini .mm-area{position:absolute;transform:translate(-50%,-50%);border-radius:50%;border:1.5px dashed var(--color-flower);background:rgba(249,168,212,.1)}.stops-list{display:flex;flex-direction:column;gap:var(--space-2)}.stop-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition),background var(--transition)}.stop-row:hover{border-color:var(--color-accent)}.stop-drag{color:var(--color-text-muted);cursor:-webkit-grab;cursor:grab;opacity:0;transition:opacity var(--transition)}.stop-row:hover .stop-drag{opacity:.7}.stop-num{width:24px;height:24px;border-radius:50%;background:var(--color-surface-3);display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:600;flex-shrink:0}.stop-info{flex:1 1;min-width:0}.stop-name{font-size:var(--text-sm);font-weight:500}.stop-meta,.stop-sub{font-size:var(--text-xs);color:var(--color-text-muted)}.stop-meta{align-items:center}.media-filters,.stop-meta{display:flex;gap:var(--space-3)}.media-filters{margin-bottom:var(--space-5);flex-direction:column}.media-filter-row{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.media-filter-row .tabs{padding:0;border-bottom:none}.media-search{position:relative;flex:1 1;max-width:320px}.media-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:var(--text-sm);pointer-events:none}.media-search-input{width:100%;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3) var(--space-2) 36px;font-size:var(--text-sm);color:var(--color-text-primary);font-family:inherit;transition:border-color var(--transition),box-shadow var(--transition)}.media-search-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-muted)}.media-search-input::placeholder{color:var(--color-text-muted)}.media-status-filters{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.media-filter-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.media-filter-label,.media-status-pill{font-size:var(--text-xs);font-weight:500}.media-status-pill{padding:4px 12px;border-radius:var(--radius-full);background:var(--color-surface-2);border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition);font-family:inherit}.media-status-pill:hover{border-color:var(--color-accent);color:var(--color-text-primary)}.media-status-pill.active{background:var(--color-accent-muted);border-color:var(--color-accent);color:var(--color-accent)}.media-summary-bar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5)}.media-count{font-size:var(--text-sm);color:var(--color-text-muted)}.media-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12) var(--space-6);text-align:center;border:1.5px dashed var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.media-empty-icon{font-size:48px;margin-bottom:var(--space-4)}.media-empty-title{font-size:var(--text-lg);font-weight:600;margin-bottom:var(--space-2)}.media-empty-hint{font-size:var(--text-sm);color:var(--color-text-muted)}.media-section{margin-bottom:var(--space-8)}.media-section-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.media-section-title{font-size:var(--text-base);font-weight:600;color:var(--color-text-primary)}.media-section-count{font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:2px 8px}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:var(--space-5);gap:var(--space-5)}.media-asset-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color var(--transition),box-shadow var(--transition);display:flex;flex-direction:column}.media-asset-card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-sm)}.media-card-thumb{overflow:hidden}.media-image-thumb{display:flex;align-items:flex-end;padding:var(--space-3);position:relative;cursor:pointer}.media-image-thumb:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.4),transparent 50%)}.media-image-thumb-label{position:relative;z-index:1;font-size:10px;font-weight:500;color:rgba(255,255,255,.8);font-family:var(--font-mono);background:rgba(0,0,0,.4);padding:2px 6px;border-radius:var(--radius-sm)}.media-card-body{padding:var(--space-4);flex:1 1}.media-card-name{font-size:var(--text-sm);font-weight:500;color:var(--color-text-primary);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-card-meta{font-size:var(--text-xs);color:var(--color-text-muted);font-family:var(--font-mono);display:flex;align-items:center;gap:4px;flex-wrap:wrap}.meta-sep{opacity:.5}.media-card-footer{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap}.media-assoc-btn{font-size:var(--text-xs);color:var(--color-accent);background:none;border:none;cursor:pointer;padding:0;font-family:inherit;font-weight:500}.media-assoc-btn:hover{text-decoration:underline}.media-assoc-list{margin-top:var(--space-3);border-top:1px solid var(--color-border-subtle);padding-top:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.media-assoc-item{display:flex;flex-direction:column;gap:2px;padding:var(--space-2) var(--space-3);background:var(--color-surface-2);border-radius:var(--radius-md)}.assoc-breadcrumb{font-size:var(--text-xs);color:var(--color-text-primary);font-weight:500;display:flex;align-items:center;gap:0;flex-wrap:wrap}.assoc-breadcrumb .crumb-sep{color:var(--color-text-muted);font-weight:400;margin:0 2px}.assoc-section{font-size:10px;color:var(--color-accent);font-weight:500}.media-card-actions{display:flex;gap:var(--space-1);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border-subtle);background:var(--color-surface-2)}.media-audio-card .media-card-body{padding:var(--space-4)}.media-audio-header{display:flex;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4)}.media-audio-icon{width:40px;height:40px;border-radius:var(--radius-md);background:var(--color-accent-muted);border:1px solid var(--color-accent);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.media-audio-info{flex:1 1;min-width:0}.media-narrator-label{color:var(--color-text-secondary)}.media-audio-card{flex-direction:column}.media-audio-body{display:grid;grid-template-columns:1fr 1fr 220px;grid-gap:var(--space-5);gap:var(--space-5);align-items:start;padding:var(--space-5)}.media-audio-col-center,.media-audio-col-left,.media-audio-col-right{display:flex;flex-direction:column;gap:var(--space-3)}.media-audio-name{font-size:var(--text-base);font-weight:600;color:var(--color-text-primary);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-audio-meta{font-size:var(--text-xs);color:var(--color-text-muted);font-family:var(--font-mono);display:flex;align-items:center;gap:4px;flex-wrap:wrap}.media-audio-narrator{font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:2px}.media-audio-status{margin-top:var(--space-2)}.media-audio-actions{display:flex;flex-direction:column;gap:var(--space-2)}.media-audio-player-col{padding:0 var(--space-5) var(--space-5)}.upload-dropdown{position:relative;display:inline-flex}.upload-dropdown-menu{position:absolute;top:calc(100% + var(--space-1));right:0;min-width:180px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-2);z-index:200;display:none;animation:fadeIn .12s ease}.upload-dropdown-menu.open{display:block}.upload-dropdown-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition),color var(--transition);background:none;border:none;width:100%;text-align:left;font-family:inherit}.upload-dropdown-item:hover{background:var(--color-surface-3);color:var(--color-text-primary)}.media-assoc-hierarchy{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-2);border-top:1px solid var(--color-border-subtle);padding-top:var(--space-3)}.hier-assoc-block{display:flex;flex-direction:column;gap:2px;padding:var(--space-2) var(--space-3);background:var(--color-surface-2);border-radius:var(--radius-md)}.hier-assoc-path{display:flex;align-items:center;gap:4px;font-size:var(--text-xs);font-weight:500;color:var(--color-text-primary);flex-wrap:wrap}.hier-assoc-path .hier-sep{color:var(--color-text-muted);font-weight:400}.hier-assoc-section{font-size:10px;color:var(--color-accent);font-weight:500;padding-left:4px}.audio-upload-zone{border:1.5px dashed var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8);text-align:center;color:var(--color-text-muted);transition:border-color var(--transition),background var(--transition);cursor:pointer;background:var(--color-surface);margin-bottom:var(--space-4)}.audio-upload-zone:hover{border-color:var(--color-accent);color:var(--color-text-secondary)}.audio-upload-zone-inner{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.audio-upload-icon{font-size:28px}.audio-upload-title{font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:500}.audio-upload-hint{font-size:var(--text-xs)}.audio-file-state{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-4)}.audio-file-info{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.audio-file-icon{width:36px;height:36px;border-radius:var(--radius-md);background:var(--color-accent-muted);border:1px solid var(--color-accent);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.audio-file-details{flex:1 1;min-width:0}.audio-file-name{font-size:var(--text-sm);font-weight:500;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audio-file-meta{color:var(--color-text-muted);font-family:var(--font-mono);display:flex;align-items:center;gap:4px;flex-wrap:wrap}.audio-file-meta,.audio-narrator{font-size:var(--text-xs);margin-top:2px}.audio-narrator{color:var(--color-text-secondary)}.audio-file-actions{display:flex;gap:var(--space-2)}.audio-file-label{font-size:var(--text-xs);color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px;flex-shrink:0}.audio-remove-confirm{border-radius:var(--radius-lg);overflow:hidden;animation:fadeIn var(--transition)}.audio-remove-confirm-inner{padding:var(--space-4);background:rgba(248,113,113,.06);border:1px solid rgba(248,113,113,.25);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:var(--space-2);align-items:center;text-align:center}.audio-remove-confirm-icon{font-size:24px;margin-bottom:var(--space-1)}.audio-remove-confirm-text{font-size:var(--text-sm);color:var(--color-text-primary)}.audio-remove-confirm-text strong{font-weight:600}.audio-remove-confirm-hint{font-size:var(--text-xs);color:var(--color-text-muted);line-height:var(--leading-normal);max-width:320px}.audio-remove-confirm-actions{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.audio-player--compact{padding:var(--space-3) var(--space-4)}.audio-player--compact .audio-play-btn{width:36px;height:36px;font-size:12px}.audio-player--compact .waveform{height:28px}.audio-player--compact .audio-file-label{display:none}.demo-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:500;color:var(--color-text-muted);background:rgba(136,145,184,.12);margin-right:var(--space-3)}.te-layout{display:grid;grid-template-columns:1fr 380px;grid-gap:var(--space-5);gap:var(--space-5);flex:1 1;overflow:hidden}.te-list-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden}.te-list-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border-subtle)}.te-list{flex:1 1;overflow-y:auto;padding:var(--space-3)}.te-card{width:100%;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-3);text-align:left;cursor:pointer;transition:border-color var(--transition),background var(--transition);font-family:inherit}.te-card:hover{border-color:var(--color-accent);background:var(--color-surface-3)}.te-card--selected{border-color:var(--color-accent);background:var(--color-accent-muted)}.te-card-header{display:flex;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-3)}.te-card-icon{font-size:24px;flex-shrink:0;line-height:1}.te-card-title{flex:1 1;min-width:0}.te-card-name{display:block;font-size:var(--text-sm);font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.te-card-type{display:block;font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:2px}.te-card-chevron{color:var(--color-text-muted);font-size:18px;line-height:1}.te-card-meta{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-2)}.te-card-services{font-size:var(--text-xs);color:var(--color-text-muted)}.te-detail-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden}.te-detail-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border-subtle)}.te-detail-empty{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:var(--text-sm);padding:var(--space-8)}.te-detail-empty-icon{font-size:32px;margin-bottom:var(--space-4)}.te-summary{flex:1 1;overflow-y:auto;padding:var(--space-5)}.te-summary-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);padding-bottom:var(--space-5);border-bottom:1px solid var(--color-border-subtle)}.te-summary-icon{font-size:32px;flex-shrink:0;line-height:1}.te-summary-name{font-size:var(--text-base);font-weight:600;color:var(--color-text-primary);margin:0}.te-summary-type{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.te-summary-section{margin-bottom:var(--space-5)}.te-summary-section-title{font-size:var(--text-xs);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--space-3) 0}.te-summary-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0}.te-summary-label{font-size:var(--text-sm);color:var(--color-text-secondary)}.te-summary-value{font-size:var(--text-sm);color:var(--color-text-primary);text-align:right}.te-summary-none{color:var(--color-text-muted);font-style:italic}.te-summary-id{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-secondary);background:var(--color-surface-3);padding:2px 6px;border-radius:var(--radius-sm)}.te-summary-text{font-size:var(--text-sm);color:var(--color-text-primary);line-height:var(--leading-relaxed);margin:0}.te-summary-actions{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--color-border-subtle)}.te-empty{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);text-align:center}.te-empty-icon{font-size:48px;margin-bottom:var(--space-4)}.te-empty-title{font-size:var(--text-base);font-weight:600;color:var(--color-text-primary);margin:0 0 var(--space-2) 0}.te-empty-desc{font-size:var(--text-sm);color:var(--color-text-muted);margin:0 0 var(--space-5) 0}.te-edit-indicator{color:var(--color-accent);font-weight:500}.te-form{flex:1 1;overflow-y:auto;padding:var(--space-5)}.te-form-section{margin-bottom:var(--space-6);padding-bottom:var(--space-5);border-bottom:1px solid var(--color-border-subtle)}.te-form-section:last-child{border-bottom:none;margin-bottom:0}.te-form-section-title{font-size:var(--text-sm);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--space-4) 0}.te-form-error-banner{background:rgba(248,113,113,.12);border:1px solid rgba(248,113,113,.3);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);color:var(--color-error);font-size:var(--text-sm);margin-bottom:var(--space-4)}.input--error{border-color:var(--color-error)!important}.form-error{display:block;color:var(--color-error);font-size:var(--text-xs);margin-top:var(--space-1)}.te-services-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--space-2);gap:var(--space-2)}.te-checkbox-label{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--transition),background var(--transition);font-size:var(--text-sm)}.te-checkbox-label:hover{border-color:var(--color-accent);background:var(--color-surface-3)}.te-checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-accent);flex-shrink:0}.te-checkbox-text{display:flex;align-items:center;gap:var(--space-2);color:var(--color-text-primary)}.te-checkbox-symbol{font-size:14px}.te-radio-group{display:flex;flex-direction:column;gap:var(--space-2)}.te-radio-label{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--transition),background var(--transition);font-size:var(--text-sm)}.te-radio-label:hover{border-color:var(--color-accent);background:var(--color-surface-3)}.te-radio-label input[type=radio]{width:16px;height:16px;accent-color:var(--color-accent);flex-shrink:0}.te-radio-text{display:flex;align-items:center;gap:var(--space-2);color:var(--color-text-primary)}.te-radio-symbol{font-size:14px}.te-form-actions{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border-subtle);background:var(--color-surface)}.te-detail-empty-hint{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-1)}.te-form-subsection{padding-top:var(--space-3)}.te-subsection-hint{font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:var(--space-3)}.te-hours-mode-radios{display:flex;flex-direction:column;gap:var(--space-2)}.te-weekly-schedule{margin-top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}.te-day-schedule{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-3)}.te-day-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}.te-day-closed{font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic}.te-day-ranges{flex-direction:column;padding-left:var(--space-6)}.te-day-ranges,.te-time-range{display:flex;gap:var(--space-2)}.te-time-range{align-items:center}.te-time-input{width:80px;text-align:center;font-family:var(--font-mono)}.te-time-sep{color:var(--color-text-muted);font-size:var(--text-sm)}.te-range-remove{background:none;border:none;color:var(--color-error);cursor:pointer;font-size:18px;line-height:1;padding:var(--space-1)}.te-range-remove:hover{opacity:.7}.te-add-range{background:none;border:1px dashed var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;font-size:var(--text-xs);padding:var(--space-2) var(--space-3);margin-top:var(--space-2)}.te-add-range:hover{border-color:var(--color-accent);color:var(--color-accent)}.te-confirm-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.te-confirm-dialog{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);max-width:400px;margin:var(--space-5)}.te-confirm-title{font-size:var(--text-base);font-weight:600;color:var(--color-text-primary);margin:0 0 var(--space-3) 0}.te-confirm-text{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0 0 var(--space-5) 0;line-height:var(--leading-relaxed)}.te-confirm-actions{display:flex;justify-content:flex-end;gap:var(--space-3)}.rc-layout{display:grid;grid-template-columns:1fr 380px;grid-gap:var(--space-5);gap:var(--space-5);flex:1 1;overflow:hidden}.rc-list-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden}.rc-list-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border-subtle)}.rc-list{flex:1 1;overflow-y:auto;padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.rc-card{width:100%;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);text-align:left;cursor:pointer;transition:border-color var(--transition),background var(--transition)}.rc-card:hover{border-color:var(--color-accent);background:var(--color-surface-3)}.rc-card--selected{border-color:var(--color-accent);background:var(--color-accent-muted)}.rc-card-header{display:flex;align-items:flex-start;gap:var(--space-3)}.rc-card-icon{font-size:24px;flex-shrink:0}.rc-card-title{flex:1 1;min-width:0}.rc-card-name{display:block;font-size:var(--text-sm);font-weight:500;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rc-card-type{display:block;font-size:var(--text-xs);color:var(--color-text-secondary)}.rc-card-chevron{color:var(--color-text-muted);font-size:18px}.rc-card-meta{flex-wrap:wrap;gap:var(--space-2)}.rc-card-location,.rc-card-meta{display:flex;margin-top:var(--space-3)}.rc-card-location{align-items:center;gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border-subtle)}.rc-card-destination{font-size:var(--text-xs);color:var(--color-text-secondary)}.rc-card-coords{font-size:var(--text-xs);color:var(--color-text-muted);font-family:var(--font-mono);margin-left:auto}.rc-summary{flex:1 1;overflow-y:auto;padding:var(--space-5)}.rc-summary-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);padding-bottom:var(--space-5);border-bottom:1px solid var(--color-border-subtle)}.rc-summary-icon{font-size:32px;flex-shrink:0;line-height:1}.rc-summary-name{font-size:var(--text-base);font-weight:600;color:var(--color-text-primary);margin:0}.rc-summary-type{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.rc-summary-section{margin-bottom:var(--space-5)}.rc-summary-section-title{font-size:var(--text-xs);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--space-3) 0}.rc-summary-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0}.rc-summary-label{font-size:var(--text-sm);color:var(--color-text-secondary)}.rc-summary-value{font-size:var(--text-sm);color:var(--color-text-primary);text-align:right}.rc-summary-id{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-secondary);background:var(--color-surface-3);padding:2px 6px;border-radius:var(--radius-sm)}.rc-summary-text{font-size:var(--text-sm);color:var(--color-text-primary);line-height:var(--leading-relaxed);margin:0}.rc-summary-details{margin-top:var(--space-2);color:var(--color-text-secondary)}.rc-summary-staff-note{background:var(--color-surface-2);padding:var(--space-3);border-radius:var(--radius-md);border-left:3px solid var(--color-accent)}.rc-summary-actions{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--color-border-subtle)}.rc-detail-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden}.rc-detail-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border-subtle);flex-shrink:0}.rc-detail-empty{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-5);color:var(--color-text-secondary)}.rc-detail-empty-icon{font-size:32px;margin-bottom:var(--space-4)}.rc-detail-empty-hint{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-1)}.rc-empty{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-6);color:var(--color-text-secondary)}.rc-empty-icon{font-size:48px;margin-bottom:var(--space-4)}.rc-empty-title{font-size:var(--text-lg);font-weight:600;color:var(--color-text-primary);margin:0 0 var(--space-2) 0}.rc-empty-desc{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0 0 var(--space-5) 0}.rc-form{flex:1 1;overflow-y:auto;padding:var(--space-5)}.rc-form-section{margin-bottom:var(--space-6)}.rc-form-section:last-child{margin-bottom:0}.rc-form-section-title{font-size:var(--text-sm);font-weight:600;color:var(--color-text-primary);margin:0 0 var(--space-4) 0;padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border-subtle)}.rc-form-error-banner{background:var(--color-error-light);color:var(--color-error);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);margin-bottom:var(--space-4)}.rc-form-actions{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border-subtle);background:var(--color-surface);flex-shrink:0}.rc-form-subsection{padding-top:var(--space-3)}.rc-radio-group{display:flex;flex-direction:column;gap:var(--space-2)}.rc-radio-label{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--text-sm);color:var(--color-text-primary)}.rc-radio-label input{accent-color:var(--color-accent)}.rc-checkbox-wrapper{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--text-sm);color:var(--color-text-primary)}.rc-checkbox{width:18px;height:18px;accent-color:var(--color-accent);cursor:pointer}.rc-edit-indicator{color:var(--color-accent)}.items-list{display:flex;flex-direction:column;gap:var(--space-2)}.items-add-btn{margin-top:var(--space-2)}.item-card{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition)}.item-card:hover{border-color:var(--color-accent)}.item-card-content{flex:1 1;min-width:0}.item-card-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2)}.item-card-name{font-size:var(--text-sm);font-weight:600;color:var(--color-text-primary)}.item-card-source{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted)}.item-card-source-label{font-weight:500}.item-card-source-name{color:var(--color-text-secondary)}.item-card-trigger{margin-top:var(--space-2)}.trigger-badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);font-weight:500;color:var(--color-accent);background:var(--color-accent-light);border-radius:var(--radius-sm)}.trigger-checkboxes{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.checkbox-label{display:flex;align-items:flex-start;gap:var(--space-3);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-sm);transition:background var(--transition)}.checkbox-label:hover{background:var(--color-surface-2)}.checkbox-label input[type=checkbox]{margin-top:2px;width:16px;height:16px;accent-color:var(--color-accent)}.checkbox-label input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.checkbox-text{display:flex;flex-direction:column;gap:2px}.checkbox-title{font-size:var(--text-sm);font-weight:500;color:var(--color-text-primary)}.checkbox-desc{font-size:var(--text-xs);color:var(--color-text-muted)}.items-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);text-align:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.items-empty-icon{font-size:32px;margin-bottom:var(--space-3)}.items-empty-title{font-size:var(--text-base);font-weight:600;color:var(--color-text-primary);margin-bottom:var(--space-2)}.items-empty-hint{font-size:var(--text-sm);color:var(--color-text-muted)}.not-found-state p{margin-bottom:var(--space-5)}.back-link,.not-found-state p{color:var(--color-text-secondary)}.back-link{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);text-decoration:none;transition:color var(--transition)}.back-link:hover{color:var(--color-text-primary)}.form-section{margin-bottom:var(--space-6)}.form-section-title{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:var(--space-4)}.id-display code{font-family:var(--font-mono);background:var(--color-surface);border-radius:var(--radius-sm);color:var(--color-text-primary)}.sidebar-stat-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) 0;font-size:var(--text-sm)}.sidebar-stat-label{color:var(--color-text-muted)}.sidebar-stat-value{font-weight:500;color:var(--color-text-primary)}.page-title-row{gap:var(--space-3)}.breadcrumb,.page-title-row{display:flex;align-items:center}.breadcrumb{gap:var(--space-2);font-size:var(--text-sm)}.breadcrumb-link{color:var(--color-text-secondary);text-decoration:none;transition:color var(--transition)}.breadcrumb-link:hover{color:var(--color-text-primary)}.crumb-sep{color:var(--color-text-muted)}.journey-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12);text-align:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.journey-empty-icon{font-size:48px;margin-bottom:var(--space-4)}.journey-empty-title{font-size:var(--text-lg);font-weight:600;color:var(--color-text-primary);margin-bottom:var(--space-2)}.journey-empty-hint{font-size:var(--text-sm);color:var(--color-text-muted);max-width:320px}.journey-sidebar-heading{font-size:10px;font-weight:700;letter-spacing:.08em;margin-bottom:var(--space-3)}.journey-sidebar-row{font-size:var(--text-xs)}.journey-sidebar-val--mono{font-family:var(--font-mono);font-size:10px}.journey-sidebar-stamp{display:flex;align-items:center;gap:var(--space-2);max-width:160px}.journey-sidebar-stamp-thumb{width:24px;height:24px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:var(--color-surface-2);background-repeat:no-repeat;flex-shrink:0}.journey-sidebar-note{line-height:var(--leading-normal)}.journey-filter-bar{gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap}.collection-item-count,.journey-filter-label{color:var(--color-text-secondary)}.collection-item-count,.collection-name{font-size:var(--text-sm)}.collection-name{font-weight:600;color:var(--color-text-primary)}.text-muted{color:var(--color-text-muted)}.health-badge{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:500}.health-badge-dot{width:6px;height:6px;border-radius:50%}.health-badge--ok .health-badge-dot{background:var(--color-success)}.health-badge--ok{color:var(--color-success)}.health-badge--warning .health-badge-dot{background:var(--color-warning)}.health-badge--warning{color:var(--color-warning)}.health-badge--error .health-badge-dot{background:var(--color-error)}.health-badge--error{color:var(--color-error)}.journey-health-cell{display:flex;flex-direction:column;gap:var(--space-1)}.journey-health-msg{font-size:var(--text-xs);color:var(--color-text-muted)}.journey-dest-name,.journey-stat{font-size:var(--text-sm);color:var(--color-text-primary)}.journey-dest-name{font-weight:600}.journey-dest-sub{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:2px}.journey-stamp-icon{font-size:var(--text-lg)}.journey-stamp-missing{font-size:var(--text-xs);color:var(--color-text-muted)}.skeleton{background:linear-gradient(90deg,var(--color-surface-2) 25%,var(--color-surface-3) 50%,var(--color-surface-2) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:var(--radius-sm)}.skeleton--text{height:14px}.skeleton--badge{height:20px;width:70px;border-radius:var(--radius-full)}.skeleton--input{height:38px}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.food-confirm-panel{margin-top:var(--space-4);padding:var(--space-4);background:rgba(108,138,255,.08);border:1px solid rgba(108,138,255,.2);border-radius:var(--radius-lg)}.food-confirm-collection{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-accent);margin-bottom:var(--space-3)}.food-confirm-btn{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-base);font-weight:600}.food-confirm-confirmed{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3);background:rgba(74,222,128,.12);border:1px solid rgba(74,222,128,.25);border-radius:var(--radius-md)}.food-confirm-check{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--color-success);color:#fff;font-size:14px;font-weight:700;flex-shrink:0}.food-confirm-title{font-size:var(--text-base);font-weight:600;color:var(--color-success)}.food-confirm-subtitle{font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:2px}.preview-state-selector{align-items:center;padding:var(--space-3);background:var(--color-surface);border-radius:var(--radius-md)}.preview-state-label{color:var(--color-text-secondary)}.collection-preview-stage{display:flex;justify-content:center}.collection-preview{padding:var(--space-4)}.collection-preview-hero{padding:var(--space-4);background:linear-gradient(135deg,rgba(108,138,255,.15),rgba(108,138,255,.05));border-bottom:1px solid rgba(108,138,255,.15);text-align:center}.collection-artwork{object-fit:cover;box-shadow:0 4px 12px rgba(0,0,0,.15)}.collection-artwork,.collection-artwork-placeholder{width:80px;height:80px;border-radius:var(--radius-lg);margin:0 auto var(--space-3)}.collection-artwork-placeholder{background:var(--color-surface-3);display:flex;align-items:center;justify-content:center;font-size:var(--text-2xl);font-weight:700;color:var(--color-accent)}.collection-preview-title{font-size:var(--text-xl);font-weight:700;color:var(--color-text);margin-bottom:var(--space-1)}.collection-preview-theme{font-size:var(--text-sm);color:var(--color-text-secondary)}.collection-preview-body{padding:var(--space-4)}.collection-progress{margin-bottom:var(--space-4);padding:var(--space-3);background:rgba(108,138,255,.08);border-radius:var(--radius-md);text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.collection-progress.complete{background:rgba(74,222,128,.12);border:1px solid rgba(74,222,128,.3)}.collection-progress-count{font-size:var(--text-2xl);font-weight:700;color:var(--color-accent)}.collection-progress.complete .collection-progress-count{color:var(--color-success)}.collection-progress-label{font-size:var(--text-sm);color:var(--color-text-secondary)}.collection-complete-badge{display:inline-block;padding:var(--space-1) var(--space-3);background:var(--color-success);color:#fff;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.collection-empty{text-align:center;padding:var(--space-8) var(--space-4);color:var(--color-text-muted);font-size:var(--text-sm)}.memory-list{display:flex;flex-direction:column;gap:var(--space-2)}.memory-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all .2s ease;cursor:pointer}.memory-item:hover{border-color:var(--color-primary);background:rgba(37,99,235,.04)}.memory-item.collected{background:rgba(74,222,128,.08);border-color:rgba(74,222,128,.25)}.memory-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:12px;font-weight:700;flex-shrink:0;background:var(--color-border);color:var(--color-text-muted)}.memory-artwork{object-fit:cover}.memory-artwork,.memory-artwork-placeholder{width:48px;height:48px;border-radius:var(--radius-md);flex-shrink:0}.memory-artwork-placeholder{background:var(--color-surface-2);border:2px dashed var(--color-border);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:var(--color-text-muted)}.memory-item.collected .memory-icon{background:var(--color-success);color:#fff}.memory-name{font-size:var(--text-base);font-weight:500;color:var(--color-text)}.memory-item.collected .memory-name{color:var(--color-success)}.memory-content{display:flex;flex-direction:column;gap:2px;flex:1 1;min-width:0}.memory-source-type{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:capitalize}.completion-requirement{margin-top:var(--space-3);padding:var(--space-3);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text);text-align:center}.requirement-remaining{color:var(--color-text-muted);font-style:italic}.completion-award{margin-top:var(--space-4);padding:var(--space-4);border-radius:var(--radius-lg);text-align:center;background:var(--color-surface);border:1px solid var(--color-border)}.completion-award.earned{background:rgba(74,222,128,.08);border-color:rgba(74,222,128,.25)}.completion-award-label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:var(--space-3)}.completion-award.earned .completion-award-label{color:var(--color-success)}.completion-award-artwork{width:64px;height:64px;border-radius:var(--radius-lg);margin:0 auto var(--space-2);box-shadow:0 4px 12px rgba(0,0,0,.15);background-color:var(--color-surface-2);background-size:cover;background-position:50%}.completion-award-artwork.locked{filter:grayscale(100%) opacity(.5)}.completion-award-placeholder{width:64px;height:64px;border-radius:var(--radius-lg);background:var(--color-surface-2);display:flex;align-items:center;justify-content:center;font-size:32px;margin:0 auto var(--space-2)}.completion-award-placeholder.locked{background:var(--color-surface-3);border:2px dashed var(--color-border)}.completion-award-name{font-size:var(--text-base);font-weight:600;color:var(--color-text);margin-bottom:var(--space-1)}.completion-award.earned .completion-award-name{color:var(--color-success)}.completion-award-status{font-size:var(--text-sm);color:var(--color-text-muted)}.completion-award.earned .completion-award-status{color:var(--color-success);font-weight:500}.completion-award-label.earned{color:var(--color-success)}.completion-award-flowers{font-size:var(--text-sm);color:var(--color-primary);font-weight:500;margin-bottom:var(--space-1)}.criteria-display{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md)}.criteria-row{display:flex;align-items:center;gap:var(--space-3)}.criteria-label{font-size:var(--text-sm);color:var(--color-text-muted);min-width:80px}.criteria-value{color:var(--color-text);text-transform:capitalize}.achievement-name,.criteria-value{font-size:var(--text-sm);font-weight:600}.achievement-name{color:var(--color-text-primary)}.achievement-description{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-1);max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.condition-badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:500;color:var(--color-text-secondary)}.condition-preview{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-top:var(--space-3)}.condition-preview-label{font-size:var(--text-xs);font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.condition-preview-value{font-size:var(--text-base);font-weight:600;color:var(--color-text)}.validation-errors{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3);background:var(--color-error-bg);border:1px solid var(--color-error);border-radius:var(--radius-md);margin-top:var(--space-4)}.validation-error-title{font-weight:600;margin-bottom:var(--space-1)}.validation-error-item,.validation-error-title{font-size:var(--text-sm);color:var(--color-error)}.danger-zone-title{color:var(--color-error)}.danger-zone{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md)}.danger-zone-content{flex:1 1}.danger-zone-label{font-size:var(--text-sm);font-weight:600;color:var(--color-text-primary);margin-bottom:var(--space-1)}.danger-zone-hint{font-size:var(--text-xs);color:var(--color-text-muted)}.btn--danger{background:var(--color-error);color:white;border:none;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.btn--danger:hover{background:var(--color-error-dark)}.journey-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:var(--space-4);gap:var(--space-4);margin-bottom:var(--space-5)}.stat-card-inner{display:flex;flex-direction:column;align-items:center;text-align:center}.stat-card-icon{font-size:var(--text-2xl);margin-bottom:var(--space-2)}.stat-card-num{font-size:var(--text-2xl);font-weight:700;color:var(--color-text-primary)}.stat-card-label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.journey-filter-bar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.journey-count-label,.journey-filter-label{font-size:var(--text-sm);color:var(--color-text-muted)}.journey-count-label{margin-left:auto}.journey-sidebar-section{margin-bottom:var(--space-4)}.journey-sidebar-heading{font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-2)}.journey-sidebar-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-1) 0;font-size:var(--text-sm)}.journey-sidebar-key{color:var(--color-text-secondary)}.journey-sidebar-val{color:var(--color-text-primary);font-weight:500;text-align:right}.journey-sidebar-note{display:flex;align-items:flex-start;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-3)}.journey-sidebar-note-icon{flex-shrink:0}.id-display{display:flex;flex-direction:column;gap:var(--space-1)}.id-display code{font-size:var(--text-sm);padding:var(--space-2) var(--space-3);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text)}.id-note{font-size:var(--text-xs);color:var(--color-text-muted)}.not-found-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12);text-align:center}.not-found-icon{font-size:48px;margin-bottom:var(--space-4)}.not-found-state h2{font-size:var(--text-xl);font-weight:600;color:var(--color-text-primary);margin-bottom:var(--space-2)}.not-found-state p{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-6)}.preview-state-selector{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-4)}.preview-state-label{font-size:var(--text-sm);font-weight:500;color:var(--color-text-muted)}.achievement-preview-stage{display:flex;justify-content:center;padding:var(--space-4);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.achievement-preview,.achievement-preview-body{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3)}.achievement-preview-body{background:var(--color-surface)}.achievement-card{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);background:var(--color-surface-2);border:2px solid var(--color-border);border-radius:var(--radius-lg)}.achievement-card.incomplete{opacity:.7;border-style:dashed}.achievement-card-icon{font-size:32px;flex-shrink:0}.achievement-card-content{flex:1 1;min-width:0}.achievement-card-name{font-size:var(--text-base);font-weight:600;color:var(--color-text);margin-bottom:var(--space-1)}.achievement-card-description{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-2);line-height:1.4}.achievement-card-condition{font-size:var(--text-sm);font-weight:500;color:var(--color-primary);padding:var(--space-1) var(--space-2);background:var(--color-primary-bg);border-radius:var(--radius-sm);display:inline-block;margin-bottom:var(--space-2)}.achievement-card-status{font-size:var(--text-xs)}.achievement-card-status-badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-weight:500;text-transform:capitalize}.achievement-card-status-badge.status-draft{background:var(--color-surface-3);color:var(--color-text-muted);border:1px solid var(--color-border)}.achievement-card-status-badge.status-published{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success)}.achievement-card-status-badge.status-archived{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid var(--color-warning)}.achievement-placeholder{display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:var(--color-surface-3);border:1px dashed var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-muted)}.achievement-card.earned{border-color:var(--color-success);background:var(--color-success-bg)}.achievement-card.earned .achievement-card-icon{filter:drop-shadow(0 0 4px rgba(0,0,0,.2))}.dialog--wide{width:680px;max-width:calc(100vw - 40px)}.dialog-header-count{margin-left:var(--space-3);font-size:var(--text-sm);font-weight:400;color:var(--color-text-muted)}.source-picker-body{padding:0;display:flex;flex-direction:column;max-height:70vh}.source-picker-tabs{display:flex;border-bottom:1px solid var(--color-border)}.source-picker-tab{flex:1 1;padding:var(--space-4);background:transparent;border:none;border-bottom:2px solid transparent;font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition)}.source-picker-tab:hover{background:var(--color-surface);color:var(--color-text-primary)}.source-picker-tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.source-picker-controls{display:flex;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--color-border-subtle)}.source-picker-search{flex:1 1;position:relative;display:flex;align-items:center}.source-picker-search .search-icon{position:absolute;left:var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted)}.source-picker-search .input{padding-left:var(--space-8);width:100%}.search-clear{position:absolute;right:var(--space-3);background:none;border:none;font-size:var(--text-lg);color:var(--color-text-muted);cursor:pointer;padding:0;line-height:1}.search-clear:hover{color:var(--color-text-primary)}.source-picker-list{flex:1 1;overflow-y:auto;padding:var(--space-4)}.source-picker-group{margin-bottom:var(--space-4)}.source-picker-group:last-child{margin-bottom:0}.source-picker-group-header{font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;padding:var(--space-2) var(--space-3);background:var(--color-surface);border-radius:var(--radius-sm);margin-bottom:var(--space-2)}.source-picker-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition)}.source-picker-item:hover:not(.disabled){background:var(--color-surface)}.source-picker-item.selected{background:var(--color-accent-muted)}.source-picker-item.disabled{opacity:.5;cursor:not-allowed}.source-picker-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-accent)}.source-picker-item-name{flex:1 1;display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-primary)}.source-picker-item-badge{font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic}.source-picker-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);color:var(--color-text-muted);text-align:center}.source-picker-empty-hint{font-size:var(--text-xs);margin-top:var(--space-2)}.source-picker-stats{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border-subtle);font-size:var(--text-xs);color:var(--color-text-muted);text-align:center}.select--compact{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);min-width:160px}.stoneecho-map{position:relative}.stoneecho-map,.stoneecho-map .map-container{width:100%;height:100%}.maplibre-marker{cursor:pointer}.maplibre-marker .marker-pin{width:36px;height:36px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--color-surface-2);border:2px solid var(--color-accent);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(0,0,0,.4);transition:all .2s ease}.maplibre-marker.selected .marker-pin{background:var(--color-accent);border-color:var(--color-accent);transform:rotate(-45deg) scale(1.15)}.maplibre-marker .marker-icon{transform:rotate(45deg);font-size:18px;line-height:1}.maplibre-marker .marker-label{position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:4px;font-size:10px;font-weight:600;color:var(--color-text-primary);background:rgba(15,17,23,.9);padding:2px 8px;border-radius:var(--radius-full);white-space:nowrap;box-shadow:0 2px 6px rgba(0,0,0,.3)}.maplibre-marker.selected .marker-label{background:var(--color-accent);color:white}.maplibre-marker.area-marker .marker-pin{border-radius:50%;width:28px;height:28px;background:rgba(108,138,255,.3);border:2px dashed var(--color-accent)}.maplibre-marker.area-marker .marker-icon{transform:rotate(0deg)}.maplibre-marker.place .marker-pin{background:var(--color-surface-3);border-color:#4a90d9}.maplibre-marker.place.selected .marker-pin{background:#4a90d9;border-color:#4a90d9}.maplibre-marker.experience .marker-pin{background:var(--color-surface-2);border-color:var(--color-flower)}.maplibre-marker.experience.selected .marker-pin{background:var(--color-flower);border-color:var(--color-flower)}.maplibre-marker.traveller-essential .marker-pin{background:var(--color-surface-3);border-color:#34d399}.maplibre-marker.traveller-essential.selected .marker-pin{background:#34d399;border-color:#34d399}.maplibre-marker.road-condition .marker-pin{background:rgba(239,68,68,.2);border-color:#ef4444}.maplibre-marker.road-condition.selected .marker-pin{background:#ef4444;border-color:#ef4444}.stoneecho-map-loading,.stoneecho-map.loading .map-container{background:var(--color-surface);display:flex;align-items:center;justify-content:center}.stoneecho-map-loading{flex-direction:column;height:100%;color:var(--color-text-muted)}.map-loading-spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:map-spin 1s linear infinite}@keyframes map-spin{to{transform:rotate(1turn)}}.stoneecho-map-loading p{margin-top:12px;font-size:var(--text-sm)}.maplibregl-ctrl-attrib{font-size:10px!important;background:rgba(15,17,23,.7)!important;color:var(--color-text-muted)!important}.maplibregl-ctrl-attrib a{color:var(--color-accent)!important}.picker-wrapper{position:relative;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border);margin-bottom:var(--space-4)}.picker-map-container{width:100%;height:280px;background:var(--color-surface)}.picker-hint-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(15,17,23,.75);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:var(--color-text-muted);padding:8px 16px;border-radius:var(--radius-sm);font-size:var(--text-sm);pointer-events:none;text-align:center;white-space:nowrap}.picker-controls{display:flex;justify-content:flex-end;padding:var(--space-2) var(--space-3);background:var(--color-surface-2);border-top:1px solid var(--color-border)}.picker-marker{cursor:-webkit-grab;cursor:grab;position:relative;width:36px;height:48px}.picker-marker:active{cursor:-webkit-grabbing;cursor:grabbing}.picker-marker-pin{top:0;transform:translateX(-50%);width:36px;height:36px;background:var(--color-accent);border:3px solid white;border-radius:50% 50% 50% 0;box-shadow:0 4px 12px rgba(0,0,0,.4);z-index:2}.picker-marker-pin,.picker-marker-pulse{position:absolute;left:50%;transform:translateX(-50%) rotate(-45deg)}.picker-marker-pulse{top:4px;width:12px;height:12px;background:white;border-radius:50%;z-index:3}.btn--sm,.picker-mode-badge{font-size:var(--text-xs)}.picker-mode-badge{position:absolute;top:8px;left:8px;background:rgba(15,17,23,.8);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#6c8aff;padding:4px 10px;border-radius:var(--radius-sm);font-family:var(--font-mono);pointer-events:none;z-index:10}.no-gps-notice{display:block;padding:var(--space-2) var(--space-3);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--text-sm);margin-bottom:var(--space-3)}.place-reorder{flex-direction:column;gap:2px}.place-reorder,.reorder-btn{display:flex;align-items:center}.reorder-btn{width:24px;height:20px;justify-content:center;border-radius:var(--radius-sm);font-size:12px;font-weight:600;color:var(--color-text-muted);background:none;border:none;cursor:pointer;transition:background var(--transition),color var(--transition);line-height:1}.reorder-btn:hover:not(:disabled){background:var(--color-surface-3);color:var(--color-accent)}.reorder-btn:disabled{opacity:.25;cursor:not-allowed}.hero-preview-cell{display:flex;align-items:center;gap:8px}.hero-thumb{width:32px;height:32px;border-radius:4px;border:1px solid var(--color-border);flex-shrink:0}.hero-label{font-size:11px;font-weight:500;letter-spacing:.02em}.add-featured-row{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border:1px solid var(--color-border);border-radius:6px}.add-featured-name{font-size:13px;color:var(--text-primary)}.btn--sm{padding:4px 12px;font-size:12px;min-height:unset}.modal-overlay{position:fixed;inset:0;background:rgba(10,12,20,.75);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}.modal{background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:12px;width:100%;max-width:720px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 24px 64px rgba(0,0,0,.5)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--color-border);flex-shrink:0}.modal-title{font-size:15px;font-weight:600;color:var(--text-primary)}.modal-subtitle{font-size:12px;color:var(--text-muted);margin-top:2px}.modal-close{background:none;border:none;cursor:pointer;font-size:16px;color:var(--text-muted);padding:2px 4px;border-radius:4px;line-height:1;transition:color .15s}.modal-close:hover{color:var(--text-primary)}.modal-body{padding:20px 24px;overflow-y:auto;flex:1 1}.media-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:12px;gap:12px}.media-picker-item{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:8px;padding:8px;cursor:pointer;text-align:left;transition:border-color .15s,background .15s;display:flex;flex-direction:column;gap:6px}.media-picker-item:hover{border-color:var(--color-accent);background:var(--color-surface-3)}.media-picker-thumb{width:100%;aspect-ratio:4/3;border-radius:4px}.media-picker-name{font-size:11px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-picker-meta{font-size:10px;color:var(--text-muted)}.fp-hero-thumb{width:40px;height:40px;border-radius:6px;border:1px solid var(--color-border);flex-shrink:0}.fp-hero-thumb--empty{background:var(--color-surface-2)!important;opacity:.5}.fp-target-tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:500;background:var(--color-surface-3);color:var(--text-secondary);border:1px solid var(--color-border)}.fp-position{font-size:12px;color:var(--text-muted);white-space:nowrap}.icon-btn--danger:hover{color:var(--color-error)}.fp-hero-preview{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface-2)}.fp-hero-img{width:64px;height:48px;border-radius:6px;flex-shrink:0}.fp-cta-target-summary{margin-top:12px;padding:12px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:6px;font-size:13px}.rte-root{border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.rte-toolbar{display:flex;align-items:center;gap:2px;padding:8px;background:var(--color-surface-2);border-bottom:1px solid var(--color-border);flex-wrap:wrap}.rte-toolbar-btn{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 6px;background:transparent;border:1px solid transparent;border-radius:4px;cursor:pointer;font-size:13px;color:var(--text-secondary);transition:background .1s,border-color .1s}.rte-toolbar-btn:hover{background:var(--color-surface-3);border-color:var(--color-border)}.rte-toolbar-sep{width:1px;height:24px;background:var(--color-border);margin:0 4px}.rte-toolbar-hint{font-size:12px;color:var(--text-muted);padding:0 10px}.rte-empty{padding:24px 16px;text-align:center}.rte-empty-hint{font-size:13px;color:var(--text-muted);margin-bottom:12px}.rte-empty-blocks{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.rte-empty-blocks button{padding:6px 12px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface-2);cursor:pointer;font-size:12px;color:var(--text-secondary)}.rte-empty-blocks button:hover{background:var(--color-surface-3);border-color:var(--color-accent);color:var(--color-accent)}.rte-blocks{padding:12px;display:flex;flex-direction:column;gap:8px}.rte-block-row{display:flex;gap:8px;align-items:flex-start}.rte-block-controls{display:flex;flex-direction:column;gap:2px;padding-top:6px;flex-shrink:0}.rte-block-ctrl{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--color-border);border-radius:4px;cursor:pointer;font-size:11px;color:var(--text-muted)}.rte-block-ctrl:hover:not(:disabled){background:var(--color-surface-3);color:var(--text-primary)}.rte-block-ctrl:disabled{opacity:.3;cursor:not-allowed}.rte-block-ctrl--danger:hover{color:var(--color-error);border-color:var(--color-error)}.rte-block-content{flex:1 1;min-width:0}.rte-text-block{display:flex;flex-direction:column;gap:4px}.rte-inline-group{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.rte-mark-btn{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:4px;cursor:pointer;font-size:12px;color:var(--text-muted);flex-shrink:0}.rte-mark-btn:hover{background:var(--color-surface-3)}.rte-mark-btn.active{background:var(--color-accent);border-color:var(--color-accent);color:white}.rte-inline-input{flex:1 1;min-width:120px;height:32px;padding:0 8px;font-size:14px}.rte-link-input{height:28px;padding:0 8px;font-size:12px;width:200px;border-color:var(--color-border)}.rte-list-block{display:flex;flex-direction:column;gap:4px}.rte-list-item-row{display:flex;align-items:center;gap:6px}.rte-list-marker{width:20px;flex-shrink:0;font-size:14px;color:var(--text-muted);text-align:right}.rte-image-block-editor{display:flex;flex-direction:column;gap:8px}.rte-img-preview{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:6px}.rte-img-icon{font-size:16px}.rte-img-label{flex:1 1;font-size:13px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rte-img-insert-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;background:var(--color-surface-2);border:2px dashed var(--color-border);border-radius:6px;cursor:pointer;font-size:13px;color:var(--text-muted);width:100%}.rte-img-insert-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.rte-preview p{margin:0 0 .8em;line-height:1.6}.rte-preview h2{font-size:18px;font-weight:700;margin:1.2em 0 .5em}.rte-preview h3{font-size:15px;font-weight:600;margin:1em 0 .4em}.rte-preview blockquote{border-left:3px solid var(--color-accent);padding:8px 16px;margin:8px 0;background:var(--color-surface-2);color:var(--text-secondary);font-style:italic}.rte-preview ol,.rte-preview ul{padding-left:24px;margin:.5em 0}.rte-preview li{margin:.2em 0}.rte-preview .rte-figure{margin:12px 0}.rte-preview .rte-img-placeholder{padding:20px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:6px;text-align:center;font-size:13px;color:var(--text-muted)}.rte-preview figcaption{font-size:12px;color:var(--text-muted);margin-top:4px;text-align:center}.fp-preview-frame{display:flex;justify-content:center;padding:24px 0}.fp-preview-frame .phone-frame{max-width:375px;width:100%}.app-hero--empty{height:180px;display:flex;align-items:center;justify-content:center;background:var(--color-surface-2)!important;border-radius:0}.fp-preview-description{font-size:14px;color:var(--text-secondary);margin:8px 0;line-height:1.5;padding:10px 16px;background:var(--color-surface-2);border-radius:6px;border-left:3px solid var(--color-accent)}.fp-preview-body{margin-top:12px;font-size:14px;line-height:1.6}.fp-preview-empty{font-size:13px;color:var(--text-muted);font-style:italic;padding:8px 0}.fp-preview-cta{margin-top:20px;padding-top:16px;border-top:1px solid var(--color-border)}.app-cta-btn{width:100%;padding:12px;background:var(--color-accent);color:white;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer}.fp-preview-no-cta{margin-top:16px;font-size:12px;color:var(--text-muted);font-style:italic}.rp-picker-row{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;border:none;border-bottom:1px solid var(--color-border);background:transparent;cursor:pointer;text-align:left;gap:12px}.rp-picker-row:last-child{border-bottom:none}.rp-picker-row:hover{background:var(--color-surface-2)}.rp-place-name{font-size:13px;font-weight:500;color:var(--text-primary);flex:1 1}.rp-dest-name{font-size:12px;color:var(--text-muted);white-space:nowrap}.create-stamp-modal{max-width:520px;width:100%}.create-stamp-dialog{display:flex;flex-direction:column;height:100%}.create-stamp-dialog .modal-body{overflow-y:auto}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--color-border)}.stamp-type-selector{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.stamp-type-option{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;border:2px solid var(--color-border);border-radius:12px;background:var(--color-surface);cursor:pointer;transition:border-color .15s,background .15s;text-align:center}.stamp-type-option:hover{border-color:var(--color-accent);background:var(--color-surface-2)}.stamp-type-option.active{border-color:var(--color-accent);background:var(--color-accent-subtle)}.stamp-type-icon{font-size:28px}.stamp-type-label{font-size:14px;font-weight:600;color:var(--text-primary)}.stamp-type-desc{font-size:11px;color:var(--text-muted);line-height:1.4}.form-field{margin-bottom:16px}.form-field label{display:block;font-size:13px;font-weight:500;color:var(--text-primary);margin-bottom:6px}.form-error{padding:10px 12px;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:13px;margin-top:12px}.advanced-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 0;border:none;background:none;color:var(--text-muted);font-size:13px;cursor:pointer;border-top:1px solid var(--color-border);margin-top:8px}.advanced-toggle:hover{color:var(--text-primary)}.advanced-section{padding-top:12px}.stamp-artwork-preview,.stamp-artwork-section{display:flex;flex-direction:column;gap:8px}.stamp-artwork-image{width:100%;height:120px;border-radius:8px;background:linear-gradient(135deg,#6c8aff,#a78bfa)}.stamp-artwork-filename{font-size:12px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stamp-artwork-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;border:2px dashed var(--color-border);border-radius:8px;background:var(--color-surface);cursor:pointer;transition:border-color .15s,background .15s}.stamp-artwork-placeholder:hover{border-color:var(--color-accent);background:var(--color-surface-2)}.upload-zone-icon{font-size:24px;opacity:.6}.upload-zone-title{font-size:14px;font-weight:500;color:var(--text-primary)}.upload-zone-hint{font-size:12px;color:var(--text-muted)}.stamp-library-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.stamp-library-header .stamp-library-view-toggle{margin-bottom:0}.media-field-preview{display:flex;gap:16px;align-items:flex-start;padding:12px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface-2)}.media-field-thumb{width:80px;height:80px;flex-shrink:0;border-radius:6px;overflow:hidden;background:var(--color-surface)}.media-field-info{flex:1 1;min-width:0}.media-field-name{font-size:13px;font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.media-field-meta{font-size:12px;color:var(--text-muted);margin-bottom:8px}.media-field-actions{display:flex;gap:6px;flex-wrap:wrap}