:root{--color-bg: #121016;--color-bg-gradient: radial-gradient(ellipse at 50% 0%, #1f1a28 0%, #121016 60%);--color-surface: #1d1925;--color-surface-elevated: #25212f;--color-surface-glass: rgba(29, 25, 37, .78);--color-border: rgba(212, 165, 116, .06);--color-border-light: rgba(212, 165, 116, .13);--color-text: #e8e5ed;--color-text-secondary: #b5adc5;--color-text-muted: #756b88;--color-accent: #d4a574;--color-accent-dim: #b89164;--color-accent-glow: rgba(212, 165, 116, .12);--color-accent-soft: rgba(212, 165, 116, .05);--color-integration: #7bc99b;--color-integration-dim: #5a9e76;--color-charge: #d4655a;--color-charge-dim: #a84a40;--color-episode: #5a78b8;--color-episode-bg: rgba(90, 120, 184, .07);--color-motif: #8a5ea0;--color-motif-bg: rgba(138, 94, 160, .08);--color-core: #c49a50;--color-core-bg: rgba(196, 154, 80, .08);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 16px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .25);--shadow-md: 0 3px 10px rgba(0, 0, 0, .35);--shadow-lg: 0 6px 20px rgba(0, 0, 0, .45);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "SF Mono", "Fira Code", monospace;--safe-bottom: env(safe-area-inset-bottom, 0px)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%;-webkit-text-size-adjust:100%}body{min-height:100%;font-family:var(--font);font-size:14px;line-height:1.5;color:var(--color-text);background:var(--color-bg);background-image:var(--color-bg-gradient);background-attachment:fixed;-webkit-font-smoothing:antialiased;overflow-x:hidden}#root{min-height:100vh}a{color:var(--color-accent);text-decoration:none}button{font:inherit;border:none;cursor:pointer;background:none;color:inherit}h1,h2,h3{font-weight:500;line-height:1.3}h1{font-size:20px}h2{font-size:17px}h3{font-size:15px}.app{display:flex;flex-direction:column;min-height:100vh;padding-bottom:96px}.app-content{flex:1;padding:0 16px;max-width:640px;width:100%;margin:0 auto}.screen{max-width:640px;margin:0 auto;width:100%;padding-bottom:16px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:14px;margin-bottom:10px;box-shadow:var(--shadow-md);transition:background .2s,border-color .2s;cursor:pointer}.card:active{background:var(--color-surface-elevated);border-color:var(--color-border-light)}.card--accent{border-color:#d4a5742e;background:linear-gradient(135deg,rgba(212,165,116,.05),transparent)}.card--quiet{background:transparent;border-color:transparent;box-shadow:none;cursor:default}.card-title{font-size:13px;font-weight:500;margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4}.card-meta{font-size:12px;color:var(--color-text-muted);line-height:1.4}.card-meta span+span:before{content:" · ";color:var(--color-text-muted)}.pill{display:inline-block;font-size:11px;font-weight:500;padding:2px 10px;border-radius:10px;letter-spacing:.02em;background:var(--color-surface-elevated);color:var(--color-text-secondary)}.pill--draft{background:#5a78b81a;color:#7a9ed6}.pill--completed{background:#7bc99b14;color:var(--color-integration)}.pill--abandoned{background:#d4655a12;color:var(--color-charge-dim)}.pill--candidate{background:#d4a57414;color:var(--color-accent)}.tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;max-width:100%}.tag{font-size:10px;padding:2px 8px;border-radius:5px;background:#d4a5740d;color:var(--color-accent-dim);border:1px solid rgba(212,165,116,.07);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-more{font-size:10px;padding:2px 6px;color:var(--color-text-muted)}.counters{display:flex;gap:8px;margin-bottom:16px}.counter{flex:1;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:10px 8px;text-align:center;box-shadow:var(--shadow-sm)}.counter-value{font-size:18px;font-weight:500;line-height:1.2}.counter-value--zero{color:var(--color-text-muted)}.counter-label{font-size:10px;color:var(--color-text-muted);margin-top:2px;text-transform:uppercase;letter-spacing:.04em}.loading-state,.empty-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;color:var(--color-text-muted);font-size:14px;line-height:1.6}.empty-state p{max-width:300px}.error-state p{max-width:300px;margin-bottom:14px}.skeleton{background:linear-gradient(90deg,var(--color-surface) 0%,var(--color-surface-elevated) 50%,var(--color-surface) 100%);background-size:200% 100%;border-radius:var(--radius-md);height:60px;margin-bottom:10px;animation:shimmer 1.8s ease-in-out infinite}.skeleton--short{height:30px}.skeleton--tall{height:80px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.hero-card{background:linear-gradient(145deg,rgba(212,165,116,.06),transparent 70%);border:1px solid rgba(212,165,116,.1);border-radius:var(--radius-xl);padding:20px;margin-bottom:16px;position:relative;overflow:hidden}.hero-card:before{content:"";position:absolute;top:-60%;right:-30%;width:160px;height:160px;background:radial-gradient(circle,rgba(212,165,116,.05),transparent 70%);pointer-events:none}.hero-title{font-size:18px;font-weight:500;margin-bottom:8px;line-height:1.3}.hero-text{font-size:13px;color:var(--color-text-secondary);line-height:1.6;max-width:380px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 20px;border-radius:var(--radius-md);font-size:14px;font-weight:500;transition:background .2s,transform .1s;min-height:44px}.btn:active{transform:scale(.97)}.btn--primary{background:linear-gradient(135deg,var(--color-accent),var(--color-accent-dim));color:#121016;box-shadow:0 2px 12px #d4a57426}.btn--ghost{background:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border)}.btn--ghost:active{background:var(--color-surface-elevated)}.btn-row{display:flex;gap:8px;margin-top:12px}.btn-row .btn{flex:1}.detail-panel{width:100%;max-width:100%;box-sizing:border-box;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:14px;overflow:hidden}@media(min-width:420px){.detail-panel{padding:16px}}.detail-section{margin-bottom:14px;padding:12px;border-radius:var(--radius-md);background:var(--color-surface-elevated);border:1px solid var(--color-border);width:100%;min-width:0;box-sizing:border-box;overflow:hidden}.detail-section p,.detail-section div,.detail-section span{max-width:100%;overflow-wrap:anywhere}.detail-label{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:5px}.detail-value{font-size:13px;color:var(--color-text);line-height:1.6;white-space:pre-wrap}.detail-items{display:flex;flex-wrap:wrap;gap:5px}.detail-item{background:#d4a5740d;border:1px solid rgba(212,165,116,.07);border-radius:var(--radius-sm);padding:5px 10px;font-size:13px;color:var(--color-text-secondary);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.back-btn{display:inline-flex;align-items:center;gap:4px;padding:8px 2px;color:var(--color-text-muted);font-size:13px;margin-bottom:6px;transition:color .15s}.back-btn:active{color:var(--color-accent)}.map-group{margin-bottom:20px}.map-group-title{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);margin-bottom:8px;padding-left:4px}.map-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:14px;margin-bottom:8px;box-shadow:var(--shadow-sm);cursor:pointer;transition:border-color .15s}.map-card:active{border-color:var(--color-border-light)}.map-card--motif{border-left:3px solid var(--color-motif)}.map-card--episode{border-left:3px solid var(--color-episode)}.map-card--core{border-left:3px solid var(--color-core);border-style:dashed}.map-card-title{font-size:14px;font-weight:500;margin-bottom:4px;line-height:1.4}.map-card-meta{font-size:12px;color:var(--color-text-muted);line-height:1.4}.map-card-meta span+span:before{content:" · ";color:var(--color-text-muted)}.integration-block{border:1px solid rgba(123,201,155,.08);border-radius:var(--radius-lg);padding:16px;margin-bottom:12px;background:linear-gradient(135deg,rgba(123,201,155,.03),transparent)}.integration-block-title{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--color-integration);margin-bottom:6px}.integration-block-text{font-size:14px;line-height:1.6;color:var(--color-text-secondary)}.top-header{padding:10px 16px;padding-top:max(10px,env(safe-area-inset-top));text-align:center}.top-header-title{font-size:13px;font-weight:500;letter-spacing:.04em;color:var(--color-text)}.top-header-subtitle{font-size:10px;color:var(--color-text-muted);margin-top:1px}.top-header-badge{font-size:9px;color:var(--color-accent-dim);margin-top:0}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--color-surface-glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--color-border);padding:4px 0;padding-bottom:max(4px,var(--safe-bottom));z-index:50}.bottom-nav-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 4px;font-size:10px;color:var(--color-text-muted);transition:color .15s;min-height:44px}.bottom-nav-btn--active{color:var(--color-accent)}.bottom-nav-icon{font-size:16px;line-height:1}.filter-row{display:flex;gap:6px;margin-bottom:14px;overflow-x:auto;-webkit-overflow-scrolling:touch}.filter-pill{font-size:11px;padding:5px 12px;border-radius:14px;background:var(--color-surface);color:var(--color-text-muted);border:1px solid var(--color-border);white-space:nowrap;transition:background .15s,color .15s}.filter-pill--active{background:#d4a5741a;color:var(--color-accent);border-color:#d4a5742e}.edges-list{list-style:none;padding:0}.edge-item{display:flex;align-items:center;gap:6px;padding:6px 0;font-size:12px;color:var(--color-text-muted);border-bottom:1px solid var(--color-border)}.edge-item:last-child{border-bottom:none}.edge-arrow{color:var(--color-accent-dim);font-size:12px}.flow-line{display:flex;align-items:center;gap:6px;padding:4px 0;font-size:12px;color:var(--color-text-muted);border-bottom:1px solid var(--color-border)}.flow-line:last-child{border-bottom:none}.flow-line-icon{font-size:9px;color:var(--color-accent-dim);width:14px;text-align:center;flex-shrink:0}@media(min-width:720px){body{display:flex;justify-content:center}.app{max-width:640px;width:100%;border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);min-height:100vh}.bottom-nav{max-width:640px;left:50%;transform:translate(-50%)}}
