@import url(https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;700&family=Nanum+Pen+Script&family=Nanum+Gothic&family=Nanum+Myeongjo&family=Black+Han+Sans&family=Jua&family=Do+Hyeon&family=Sunflower:wght@300;500;700&family=Gothic+A1:wght@400;700&display=swap);@import url(https://fonts.googleapis.com/css2?family=Bangers&family=Comic+Neue:wght@400;700&family=Kalam:wght@400;700&family=Permanent+Marker&family=Caveat:wght@400;700&family=Bebas+Neue&family=Righteous&family=Bungee&family=Creepster&display=swap);@import url(https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;700&family=Nanum+Gothic&family=Do+Hyeon&family=Jua&family=Black+Han+Sans&display=swap);@import url(https://fonts.googleapis.com/css2?family=Bangers&family=Comic+Neue:wght@400;700&family=Permanent+Marker&family=Caveat:wght@400;700&display=swap);.webtoon-card{background:#fff;border-radius:12px;box-shadow:0 2px 12px #00000014;cursor:pointer;overflow:hidden;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.dark .webtoon-card{background:#2a2a2a;box-shadow:0 2px 12px #0000004d}.webtoon-card:hover{box-shadow:0 20px 40px #00000040;transform:translateY(-10px) scale(1.05)}.dark .webtoon-card:hover{box-shadow:0 12px 24px #00000080}.webtoon-card-image-container{background:#f5f5f5}.square-container,.webtoon-card-image-container{height:0!important;overflow:hidden;padding-bottom:100%!important;position:relative;width:100%}.square-container{background:linear-gradient(135deg,#667eea,#764ba2)}.dark .square-container,.dark .webtoon-card-image-container{background:linear-gradient(135deg,#1a1a2e,#16213e)}.image-wrapper{align-items:center;display:flex;height:100%;justify-content:center;left:0;overflow:hidden;position:absolute!important;top:0;width:100%}.webtoon-card-image{height:100%;object-fit:cover;position:relative;transition:transform .5s ease-out;width:100%;will-change:transform}.webtoon-card:hover .image-wrapper.pan-horizontal .webtoon-card-image{animation:panHorizontalEffect 4s ease-in-out infinite alternate;height:100%!important;min-width:150%;width:auto!important}@keyframes panHorizontalEffect{0%{transform:translateX(5%) scale(1.1)}50%{transform:translateX(-20%) scale(1.2)}to{transform:translateX(-10%) scale(1.15)}}.webtoon-card:hover .image-wrapper.pan-vertical .webtoon-card-image{animation:panVerticalEffect 4s ease-in-out infinite alternate;height:auto!important;min-height:150%;width:100%!important}@keyframes panVerticalEffect{0%{transform:translateY(5%) scale(1.1)}50%{transform:translateY(-20%) scale(1.2)}to{transform:translateY(-10%) scale(1.15)}}.webtoon-card:hover .image-wrapper.zoom-slight .webtoon-card-image{animation:zoomEffect 3s ease-in-out infinite alternate}@keyframes zoomEffect{0%{transform:scale(1)}to{transform:scale(1.25)}}.webtoon-card-badge{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(135deg,#4a90e2f2,#7b68eef2);border-radius:20px;box-shadow:0 4px 12px #4a90e24d;color:#fff;font-size:11px;font-weight:700;letter-spacing:.5px;padding:6px 12px;position:absolute;right:12px;text-transform:uppercase;top:12px;z-index:10}.webtoon-card-content{background:#fff;padding:16px}.dark .webtoon-card-content{background:#2a2a2a}.webtoon-card-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#1a1a2e;display:-webkit-box;font-size:15px;font-weight:700;letter-spacing:-.2px;line-height:1.4;margin:0 0 8px;overflow:hidden;text-overflow:ellipsis}.dark .webtoon-card-title{color:#f0f0f0}.webtoon-card-theme{color:#7b68ee;font-size:12px;font-weight:600;letter-spacing:.5px;margin:0 0 6px;text-transform:uppercase}.dark .webtoon-card-theme{color:#9b88ff}.webtoon-card-date{color:#999;font-size:11px;font-weight:500;margin:0}.dark .webtoon-card-date{color:#777}.webtoon-card-meta{align-items:center;display:flex;font-size:11px;gap:8px;justify-content:space-between;margin-top:8px}.webtoon-card-views{align-items:center;color:#666;display:flex;font-weight:600;gap:4px}.dark .webtoon-card-views{color:#aaa}.webtoon-card-image[src*="No Image"],.webtoon-card-image[src*=placeholder]{animation:shimmer 2s infinite;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.webtoons-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));padding:24px}@media (max-width:768px){.webtoons-grid{gap:16px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));padding:16px}.webtoon-card-title{font-size:14px}.webtoon-card-theme{font-size:11px}.webtoon-card-badge{font-size:10px;padding:4px 8px}}@media (min-width:1200px){.webtoons-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}.loading-spinner{align-items:center;display:flex;justify-content:center;padding:2rem}.spinner{height:40px;width:40px}.dark .spinner{border-color:#6c9bd1 #333 #333}.home-page{box-sizing:border-box;margin:0 auto;max-width:1600px;padding:2rem;width:100%}.controls{align-items:center;display:flex;justify-content:center;margin-bottom:1rem;width:100%}.action-buttons{display:flex;gap:.5rem}.action-button{background-color:#f0f0f0;border:1px solid #ddd;font-size:1rem;padding:.75rem 1.5rem}.dark .action-button{background-color:#2a2a2a;border-color:#444;color:#fff}.action-button.active{background-color:#3498db;border-color:#3498db;color:#fff}.action-button:hover:not(.active){background-color:#e0e0e0}.dark .action-button:hover:not(.active){background-color:#333}.search-container{height:0;margin:0 auto 2rem;max-width:600px;overflow:hidden;transition:height .3s ease-in-out;width:100%}.search-container.show{height:60px}.search-form{gap:.5rem;padding:.5rem 0}.search-input{border:1px solid #ddd;border-radius:4px;flex:1 1;font-size:1rem;padding:.75rem;transition:border-color .3s ease}.dark .search-input{background-color:#2a2a2a;border-color:#444;color:#fff}.search-input:focus{border-color:#3498db;outline:none}.search-submit-button{background-color:#3498db;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;padding:.75rem 1.5rem;transition:background-color .3s ease}.search-submit-button:hover{background-color:#2980b9}.webtoon-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));margin-bottom:2rem;width:100%}.webtoon-grid .webtoon-card{width:100%}.no-content,.no-more-content{color:#666;padding:2rem;text-align:center}.dark .no-content,.dark .no-more-content{color:#999}@media (min-width:1400px){.home-page{max-width:1800px}.webtoon-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}}@media (max-width:1024px){.webtoon-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}@media (max-width:768px){.home-page{padding:1rem}.controls{align-items:stretch;flex-direction:column}.action-buttons{justify-content:center}.search-container{max-width:100%}.webtoon-grid{gap:1rem;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}.video-player-container,.video-player-image-wrapper{position:relative;width:100%}.video-player-image-wrapper{opacity:1;transition:opacity .2s ease;z-index:2}.video-player-image-wrapper.video-player-hidden{opacity:0;pointer-events:none}.video-player-image{display:block;height:auto;width:100%}.video-player-video-wrapper{height:100%;left:0;position:absolute;top:0;width:100%;z-index:1}.video-player-video{background:#000;display:block;height:100%;object-fit:contain;width:100%}.video-loading-overlay{align-items:center;background:#000c;display:flex;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%;z-index:10}.video-loading-spinner{animation:video-spinner-rotation .8s linear infinite;border:4px solid #fff3;border-radius:50%;border-top-color:#fff;height:48px;width:48px}@keyframes video-spinner-rotation{to{transform:rotate(1turn)}}@media (max-width:768px){.video-loading-spinner{height:36px;width:36px}}.bubble-speech{background:linear-gradient(135deg,#fff,#f0f7ff);border-color:#1976d2;border-radius:20px}.bubble-thought{background:linear-gradient(135deg,#faf5ff,#f3e5f5);border-color:#7b1fa2;border-radius:50% 40% 50% 40%}.bubble-narration{background:linear-gradient(135deg,#fffbf0,#fff8e1);border-color:#f57c00;border-radius:12px}.bubble-narration .bubble-content,.bubble-narration .bubble-text{color:#5d4037;font-family:Georgia,"Noto Serif KR",serif;font-style:italic;text-align:left}.bubble-shout{background:linear-gradient(135deg,#ffebee,#ffcdd2);border-color:#c62828;border-radius:8px;border-width:3px;box-shadow:0 4px 12px #c6282833,inset 0 1px 3px #fff9}.bubble-shout .bubble-content,.bubble-shout .bubble-text{color:#d32f2f;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.bubble-sound{background:#0000;border-color:#0000;border-width:0}.bubble-sound .bubble-content,.bubble-sound .bubble-text{color:#d63031;font-size:1.1em;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.dark .bubble-speech{background:linear-gradient(135deg,#2d2d2d,#1a2332);border-color:#42a5f5}.dark .bubble-speech .bubble-content,.dark .bubble-speech .bubble-text{color:#e3f2fd}.dark .bubble-thought{background:#2d2d2d;border-color:#e0e0e0}.dark .bubble-thought .bubble-content,.dark .bubble-thought .bubble-text{color:#e0e0e0}.dark .bubble-narration{background:#3d3520;border-color:#c9a820}.dark .bubble-narration .bubble-content,.dark .bubble-narration .bubble-text{color:#f0e0b0}.dark .bubble-shout{background:#4d2020;border-color:#f55}.dark .bubble-shout .bubble-content,.dark .bubble-shout .bubble-text{color:#f88}.dark .bubble-sound .bubble-content,.dark .bubble-sound .bubble-text{color:#ff6b6b}.mobile-bubble-wrapper{display:flex;justify-content:flex-start;margin:-40px auto .75rem;max-width:100%;padding:0 1rem 0 2rem;pointer-events:none;position:relative;z-index:20}.mobile-speech-bubble{background:#fff;border:2px solid #333;border-radius:20px;box-shadow:0 4px 12px #0000001f,inset 0 1px 3px #fffc;display:inline-block;max-width:85%;min-width:120px;opacity:0;padding:12px 16px;position:relative;transform:translateY(-20px);transition:transform .2s ease,box-shadow .2s ease}.mobile-speech-bubble.bubble-visible{animation:bubbleDropIn .5s ease-out forwards}@keyframes bubbleDropIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.mobile-speech-bubble .bubble-content{word-wrap:break-word;color:#333;display:grid;font-size:15px;line-height:1.4;min-height:30px;place-items:center;text-align:center;white-space:pre-wrap}.mobile-speech-bubble.bubble-speech{background:linear-gradient(135deg,#fff,#f0f7ff);border:2px solid #1976d2;border-radius:20px}.mobile-speech-bubble.bubble-thought{background:linear-gradient(135deg,#faf5ff,#f3e5f5);border:2px solid #7b1fa2;border-radius:50% 40% 50% 40%;padding:14px 18px}.mobile-speech-bubble.bubble-narration{background:#fffffff2;border:2px solid #333;border-radius:8px;padding:14px 18px}.mobile-speech-bubble.bubble-narration .bubble-content{color:#333;font-style:italic;text-align:left}.mobile-speech-bubble.bubble-shout{background:linear-gradient(135deg,#ffebee,#ffcdd2);border:3px solid #c62828;border-radius:8px;box-shadow:0 4px 12px #c6282833,inset 0 1px 3px #fff9;padding:14px 18px;position:relative}.mobile-speech-bubble.bubble-shout:before{background:#0000;border:3px solid #d32f2f;bottom:-3px;-webkit-clip-path:polygon(0 5%,5% 0,10% 5%,15% 0,20% 5%,25% 0,30% 5%,35% 0,40% 5%,45% 0,50% 5%,55% 0,60% 5%,65% 0,70% 5%,75% 0,80% 5%,85% 0,90% 5%,95% 0,100% 5%,95% 10%,100% 15%,95% 20%,100% 25%,95% 30%,100% 35%,95% 40%,100% 45%,95% 50%,100% 55%,95% 60%,100% 65%,95% 70%,100% 75%,95% 80%,100% 85%,95% 90%,100% 95%,95% 100%,90% 95%,85% 100%,80% 95%,75% 100%,70% 95%,65% 100%,60% 95%,55% 100%,50% 95%,45% 100%,40% 95%,35% 100%,30% 95%,25% 100%,20% 95%,15% 100%,10% 95%,5% 100%,5% 95%,0 90%,5% 85%,0 80%,5% 75%,0 70%,5% 65%,0 60%,5% 55%,0 50%,5% 45%,0 40%,5% 35%,0 30%,5% 25%,0 20%,5% 15%,0 10%);clip-path:polygon(0 5%,5% 0,10% 5%,15% 0,20% 5%,25% 0,30% 5%,35% 0,40% 5%,45% 0,50% 5%,55% 0,60% 5%,65% 0,70% 5%,75% 0,80% 5%,85% 0,90% 5%,95% 0,100% 5%,95% 10%,100% 15%,95% 20%,100% 25%,95% 30%,100% 35%,95% 40%,100% 45%,95% 50%,100% 55%,95% 60%,100% 65%,95% 70%,100% 75%,95% 80%,100% 85%,95% 90%,100% 95%,95% 100%,90% 95%,85% 100%,80% 95%,75% 100%,70% 95%,65% 100%,60% 95%,55% 100%,50% 95%,45% 100%,40% 95%,35% 100%,30% 95%,25% 100%,20% 95%,15% 100%,10% 95%,5% 100%,5% 95%,0 90%,5% 85%,0 80%,5% 75%,0 70%,5% 65%,0 60%,5% 55%,0 50%,5% 45%,0 40%,5% 35%,0 30%,5% 25%,0 20%,5% 15%,0 10%);content:"";left:-3px;position:absolute;right:-3px;top:-3px;z-index:-1}.mobile-speech-bubble.bubble-shout .bubble-content{color:#d32f2f;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.bubble-tail{height:0;position:absolute;width:0}.bubble-tail.speech-tail{border-bottom:12px solid #f0f7ff;border-left:12px solid #0000;border-right:12px solid #0000;filter:drop-shadow(1px 1px 2px rgba(0,0,0,.1));right:30px;top:-12px;z-index:1}.bubble-tail.speech-tail:before{border-bottom:13px solid #1976d2;border-left:13px solid #0000;border-right:13px solid #0000;bottom:0;content:"";left:-1px;position:absolute;z-index:-1}.bubble-tail.thought-tail{bottom:-24px;left:35px}.bubble-tail.thought-tail:before{bottom:0;height:11px;left:0;width:11px}.bubble-tail.thought-tail:after,.bubble-tail.thought-tail:before{background:#fff;border:2px solid #333;border-radius:50%;content:"";position:absolute}.bubble-tail.thought-tail:after{bottom:-11px;height:7px;left:3px;width:7px}.bubble-tail.narration-tail,.bubble-tail.shout-tail{display:none}.dark .mobile-speech-bubble.bubble-speech{background:linear-gradient(135deg,#2d2d2d,#1a2332);border-color:#42a5f5}.dark .mobile-speech-bubble.bubble-speech .bubble-content{color:#e3f2fd}.dark .bubble-tail.speech-tail{border-bottom-color:#1a2332}.dark .bubble-tail.speech-tail:before{border-bottom-color:#42a5f5}.dark .mobile-speech-bubble.bubble-thought{background:#2d2d2d;border-color:#e0e0e0}.dark .mobile-speech-bubble.bubble-thought .bubble-content{color:#e0e0e0}.dark .bubble-tail.thought-tail:after,.dark .bubble-tail.thought-tail:before{background:#2d2d2d;border-color:#e0e0e0}.dark .mobile-speech-bubble.bubble-narration{background:#fffffff2;border-color:#333}.dark .mobile-speech-bubble.bubble-narration .bubble-content{color:#333}.dark .mobile-speech-bubble.bubble-shout{background:#4d2020;border-color:#f55}.dark .mobile-speech-bubble.bubble-shout:before{border-color:#f55}.dark .mobile-speech-bubble.bubble-shout .bubble-content{color:#f88}@media (max-width:768px){.mobile-bubble-wrapper{padding:0 .5rem}.mobile-speech-bubble{font-size:14px;max-width:90%;padding:10px 14px}.mobile-speech-bubble .bubble-content{font-size:14px}}@media (max-width:480px){.mobile-speech-bubble{font-size:13px;max-width:95%;padding:8px 12px}.mobile-speech-bubble .bubble-content{font-size:13px}}.dynamic-panel-overlay{bottom:0;left:0;overflow:visible;pointer-events:none;position:absolute;right:0;top:0;z-index:5}.panel-extension-box{left:0;position:absolute;right:0;width:100%}.dynamic-bubble{align-items:center;box-sizing:border-box;display:flex;justify-content:center;opacity:0;pointer-events:auto;position:absolute;transform:scale(.9);transition:opacity .4s ease-out,transform .4s ease-out}.dynamic-bubble.bubble-visible{opacity:1;transform:scale(1)}.dynamic-bubble .bubble-text-content{word-wrap:break-word;align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;overflow:hidden;padding:8px;text-align:center;white-space:pre-wrap;width:100%}.dynamic-bubble.svg-bubble{background:#0000}.dynamic-bubble.svg-bubble .bubble-svg-bg{height:100%;left:0;object-fit:fill;pointer-events:none;position:absolute;top:0;width:100%;z-index:-1}.dynamic-bubble.svg-bubble .bubble-text-content{color:#000;height:44%;left:20%;line-height:1.4;padding:5px;position:absolute;top:28%;width:60%;z-index:1}.dynamic-bubble.bubble-speech{background:linear-gradient(135deg,#fff,#f0f7ff);border:2px solid #1976d2;border-radius:20px;box-shadow:0 4px 12px #0000001f}.dynamic-bubble.bubble-speech .bubble-text-content{color:#333}.dynamic-bubble.bubble-thought{background:linear-gradient(135deg,#faf5ff,#f3e5f5);border:2px solid #7b1fa2;border-radius:50% 40% 50% 40%;box-shadow:0 4px 12px #0000001f}.dynamic-bubble.bubble-thought .bubble-text-content{color:#333;font-style:italic}.dynamic-bubble.bubble-narration{background:#fffffff2;border:2px solid #333;border-radius:8px;box-shadow:0 4px 12px #0000001f}.dynamic-bubble.bubble-narration .bubble-text-content{color:#333;font-style:italic}.dynamic-bubble.bubble-shout{background:linear-gradient(135deg,#ffebee,#ffcdd2);border:3px solid #c62828;border-radius:8px;box-shadow:0 4px 12px #c6282833}.dynamic-bubble.bubble-shout .bubble-text-content{color:#d32f2f;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.dark .dynamic-bubble.bubble-speech{background:linear-gradient(135deg,#2d2d2d,#1a2332);border-color:#42a5f5}.dark .dynamic-bubble.bubble-speech .bubble-text-content{color:#e3f2fd}.dark .dynamic-bubble.bubble-thought{background:#2d2d2d;border-color:#e0e0e0}.dark .dynamic-bubble.bubble-thought .bubble-text-content{color:#e0e0e0}.dark .dynamic-bubble.bubble-narration{background:#fffffff2;border-color:#333}.dark .dynamic-bubble.bubble-narration .bubble-text-content{color:#333}.dark .dynamic-bubble.bubble-shout{background:#4d2020;border-color:#f55}.dark .dynamic-bubble.bubble-shout .bubble-text-content{color:#f88}.dark .dynamic-bubble.svg-bubble .bubble-text-content{color:#000}@media (max-width:768px){.dynamic-bubble{border-width:1.5px}.dynamic-bubble .bubble-text-content{padding:6px}}@media (max-width:480px){.dynamic-bubble{border-width:1px}.dynamic-bubble .bubble-text-content{padding:4px}}.interaction-hint{height:210px;left:50%;opacity:1;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);transition:opacity .5s ease-out;width:210px;z-index:100}.interaction-hint.fade-out{opacity:0}.interaction-hint-icon{height:100%;object-fit:contain;pointer-events:none;width:100%}@media (max-width:768px){.interaction-hint{height:180px;left:70%;position:fixed;top:50%;transform:translate(-50%,-50%);width:180px;z-index:9999}}.panel-viewer{background:#fff;border-radius:8px;min-height:500px;padding:1rem}.dark .panel-viewer{background:#000}.panel-viewer-empty{align-items:center;background:#fff;border-radius:8px;color:#666;display:flex;font-size:1.1rem;justify-content:center;min-height:400px}.dark .panel-viewer-empty{background:#000;color:#999}.scene-section{margin-bottom:10vh}.scene-section:last-child{margin-bottom:0}.panels-container{display:flex;flex-direction:column;gap:10vh}.panel{opacity:0;transform:translateY(30px);transition:opacity .6s ease-out,transform .6s ease-out;width:100%}.panel-editable{position:relative}.panel-edit-controls{display:flex;gap:8px;opacity:0;pointer-events:none;position:absolute;right:10px;top:10px;transition:opacity .2s;z-index:100}.panel-editable:hover .panel-edit-controls{opacity:1;pointer-events:auto}.panel-delete-btn,.panel-edit-btn{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:background-color .2s,transform .1s}.panel-edit-btn{background:#4caf50f2;color:#fff}.panel-edit-btn:hover{background:#4caf50;transform:translateY(-2px)}.panel-delete-btn{background:#f44336f2;color:#fff}.panel-delete-btn:hover{background:#f44336;transform:translateY(-2px)}.panel-editable:hover{border-radius:8px;outline:3px solid #4caf50;outline-offset:4px}.panel-animate{animation:slideInFromBottom .6s ease-out forwards}@keyframes slideInFromBottom{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.panel-image-container{background:#f0f0f0;overflow:visible;position:relative;width:100%}.dark .panel-image-container{background:#000}.panel-image{display:block;height:auto;width:100%}.panel-image.protected-image{-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none;-webkit-user-select:none;user-select:none}.image-protection-overlay{background:#0000;cursor:default;height:100%;left:0;position:absolute;top:0;width:100%;z-index:1}.mobile-dialogue-container{background:#00000008;background:var(--dialogue-bg,#00000008);border:none;border-radius:0 0 8px 8px;border-top:1px solid #00000014;margin-top:0;opacity:0;padding:.875rem 1rem;position:relative;transition:background .3s ease;z-index:15}.mobile-dialogue-container.dialogue-visible{animation:dialogueFadeIn 1s ease-out forwards}@keyframes dialogueFadeIn{0%{opacity:0}to{opacity:1}}.mobile-dialogue-text{word-wrap:break-word;color:#000;color:var(--text-color,#000);font-size:15px;line-height:1.65;margin:0;white-space:pre-wrap}.mobile-dialogue-text.bubble-narration{background:#0000000d;border-left:3px solid #333;color:#444;font-style:normal;padding-left:.75rem}.mobile-dialogue-text.bubble-thought{border-left:2px dashed #999;color:#666;font-style:italic;opacity:.85;padding-left:.5rem}.mobile-dialogue-text.bubble-sound{color:#d63031;font-size:1.1em;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.bubble-marker{color:#0984e3;display:inline-block;font-size:.95em;font-weight:600;margin-right:.5rem;min-width:1.5em}.dark .mobile-dialogue-text.bubble-narration{background:#ffffff14;border-left-color:#ddd;color:#ccc}.dark .mobile-dialogue-text.bubble-thought{border-left-color:#666;color:#999}.dark .mobile-dialogue-text.bubble-sound{color:#ff6b6b}.dark .bubble-marker{color:#74b9ff}.dark .mobile-dialogue-container{--dialogue-bg:#ffffff0f;--text-color:#fff;border:none;border-top:1px solid #ffffff14}@media (max-width:768px){.panel-viewer{padding:.5rem}.scene-title{font-size:1.2rem}.scene-section{margin-bottom:15vh}.scene-section:last-child{margin-bottom:0}.panels-container{gap:0}.panel{margin-bottom:15vh}.panel:last-child{margin-bottom:0}.mobile-dialogue-container{margin-top:0;padding:.75rem .875rem}.mobile-dialogue-text{font-size:14px;line-height:1.6}}@media (max-width:1024px){.mobile-dialogue-text{font-size:15px}}.artifact-container{background:#fff;border-radius:4px;overflow:hidden;position:relative;width:100%}.dark .artifact-container{background:#1a1a1a}.artifact-iframe{aspect-ratio:4/3;background-color:#fff;border:none;display:block;height:auto;width:100%}.dark .artifact-iframe{background-color:#1a1a1a}.artifact-badge{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:6px;box-shadow:0 2px 8px #667eea4d;color:#fff;font-size:11px;font-weight:700;left:12px;letter-spacing:.5px;padding:6px 12px;pointer-events:none;position:absolute;top:12px;z-index:10}@media (max-width:768px){.artifact-iframe{aspect-ratio:4/3;min-height:300px}.artifact-badge{font-size:10px;left:8px;padding:4px 8px;top:8px}}@media (max-width:1024px) and (min-width:769px){.artifact-iframe{min-height:400px}}.drawing-canvas-container{display:flex;flex-direction:column;gap:1rem;padding:.5rem}.drawing-tools{background:#f5f5f5;border-radius:8px;display:flex;flex-wrap:wrap;gap:1rem;padding:1rem}.dark .drawing-tools{background:#2a2a2a}.tool-group{align-items:center;display:flex;gap:.5rem}.tool-button{background:#fff;border:2px solid #ddd;border-radius:4px;cursor:pointer;font-size:.45rem;padding:.25rem .5rem;transition:all .3s ease}.dark .tool-button{background:#1a1a1a;border-color:#444;color:#fff}.tool-button:hover{background:#f0f0f0}.dark .tool-button:hover{background:#333}.tool-button.active{background:#3498db;border-color:#3498db;color:#fff}.tool-label{color:#666;font-size:.45rem;min-width:40px}.dark .tool-label{color:#999}.size-slider{cursor:pointer;width:50px}.color-palette{display:flex;gap:.25rem}.color-button{border:2px solid #ddd;border-radius:4px;cursor:pointer;height:15px;transition:all .3s ease;width:15px}.dark .color-button{border-color:#444}.color-button:hover{transform:scale(1.1)}.color-button.active{border-color:#3498db;border-width:3px}.color-picker{border:2px solid #ddd;border-radius:4px;cursor:pointer;height:15px;width:15px}.dark .color-picker{border-color:#444}.action-button{border:none;border-radius:4px;cursor:pointer;font-size:.45rem;font-weight:500;padding:.25rem .5rem;transition:all .3s ease}.clear-button{background:#e74c3c;color:#fff}.clear-button:hover{background:#c0392b}.save-button{background:#27ae60;color:#fff}.save-button:hover{background:#229954}.canvas-wrapper{background:#f8f9fa;border-radius:8px;box-shadow:inset 0 0 10px #0000001a;display:flex;justify-content:center;padding:.25rem;position:relative}.dark .canvas-wrapper{background:#1a1a1a;box-shadow:inset 0 0 10px #0000004d}.background-canvas{border:2px solid #ddd;border-radius:4px;pointer-events:none;position:absolute;z-index:1}.dark .background-canvas{border-color:#444}.drawing-canvas{background:#0000;border:2px solid #3498db;border-radius:4px;cursor:crosshair;position:relative;touch-action:none;z-index:2}.dark .drawing-canvas{border-color:#5a9fd4}.canvas-info{background:#e3f2fd;border-left:4px solid #3498db;border-radius:8px;padding:1rem}.dark .canvas-info{background:#1e3a5f;border-left-color:#5a9fd4}.info-text{color:#555;font-size:.9rem;line-height:1.5;margin:0}.dark .info-text{color:#b0b0b0}@media (max-width:768px){.drawing-tools{flex-direction:column}.tool-group{justify-content:center;width:100%}.size-slider{flex:1 1}}.character-card{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001f;max-width:140px;overflow:visible;position:relative;transition:all .2s ease;width:100%}.character-card-compact{aspect-ratio:1/1;max-width:70px;width:100%}.character-card-clickable{cursor:pointer}.character-card-clickable:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.character-card-selected{box-shadow:0 4px 12px #00b5b44d;outline:2px solid #00b5b4;outline-offset:2px}.character-card-image{aspect-ratio:3/4;background-color:#f3f4f6;border-radius:8px 8px 0 0;overflow:hidden;position:relative}.character-card-image.compact{aspect-ratio:1/1;height:auto;width:100%}.character-card-img{-webkit-font-smoothing:antialiased;-webkit-backface-visibility:hidden;backface-visibility:hidden;height:100%;image-rendering:auto;object-fit:cover;transform:translateZ(0);width:100%}.character-card-placeholder{height:100%;width:100%}.character-card-initial,.character-card-placeholder{align-items:center;display:flex;justify-content:center}.character-card-initial{background-color:#d1d5db;border-radius:50%;color:#6b7280;font-size:18px;font-weight:700;height:36px;width:36px}.character-card-initial.compact{font-size:18px;height:32px;width:32px}.character-card-check{position:absolute;right:4px;top:4px}.character-card-check-icon{color:#6366f1;height:24px;width:24px}.character-card-check-icon.compact{height:16px;width:16px}.character-card-name{background-color:#fff;min-width:54px;padding:8px}.character-card-name p{word-wrap:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#111827;display:-webkit-box;font-size:15px;font-weight:500;line-height:1.2;margin:0;max-height:2.4em;overflow:hidden;overflow-wrap:break-word;text-align:center}@media (max-width:600px){.character-card-name p{font-size:14px}}@media (prefers-color-scheme:dark){.character-card{background-color:#1f2937}.character-card-image{background-color:#374151}.character-card-initial{background-color:#4b5563;color:#9ca3af}.character-card-name{background-color:#1f2937}.character-card-name p{color:#fff}}.chat-interface{background:#f9f9f9;display:flex;flex-direction:column;height:100%;max-height:calc(100vh - 120px)}.dark .chat-interface{background:#0f0f0f}.character-selection-section{background:#fff;border-bottom:1px solid #e0e0e0;padding:.5rem 1rem}.dark .character-selection-section{background:#1a1a1a;border-bottom-color:#333}.character-selection-title{color:#333;font-size:.8rem;font-weight:600;margin:0 0 .4rem}.dark .character-selection-title{color:#e0e0e0}.character-loading{color:#666;padding:2rem;text-align:center}.dark .character-loading{color:#999}.no-characters{color:#666;padding:2rem}.dark .no-characters{color:#999}.no-characters p{margin:.5rem 0}.no-characters .hint{color:#999;font-size:.85rem;font-style:italic}.dark .no-characters .hint{color:#666}.character-grid{align-items:flex-start;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-start;max-height:200px;padding:.5rem 0}.character-grid>*{flex-shrink:0}.character-grid::-webkit-scrollbar{width:6px}.character-grid::-webkit-scrollbar-thumb{border-radius:3px}.dark .character-grid::-webkit-scrollbar-thumb{background:#444}.chat-messages-section{display:flex;flex:1 1;flex-direction:column;overflow:hidden}.chat-header{padding:.75rem 1rem}.dark .chat-header{background:#1a1a1a;border-bottom-color:#333}.chat-character-name{font-size:.95rem}.dark .chat-character-name{color:#e0e0e0}.clear-history-btn{font-size:.8rem;padding:.4rem .8rem}.dark .clear-history-btn{background:#2a2a2a;border-color:#444;color:#e0e0e0}.dark .clear-history-btn:hover{background:#333}.no-character-selected{font-size:1.1rem}.dark .no-character-selected{color:#666}.chat-welcome{padding:2rem}.dark .chat-welcome{color:#999}.chat-welcome .hint{color:#999;font-size:.85rem;font-style:italic}.dark .chat-welcome .hint{color:#666}.chat-messages{gap:1rem}.dark .chat-messages{background:#0f0f0f}.chat-message{gap:.75rem}.message-avatar{font-size:1.2rem;height:48px;width:48px}.dark .message-avatar{background:#2a2a2a}.character-avatar{-webkit-font-smoothing:antialiased;-webkit-backface-visibility:hidden;backface-visibility:hidden;image-rendering:auto;transform:translateZ(0)}.message-avatar span{font-size:1.1rem}.dark .message-avatar span{color:#999}.message-content{background:#fff;max-width:70%;padding:.75rem 1rem}.dark .message-content{background:#1a1a1a;box-shadow:0 1px 2px #0000004d}.chat-message.user .message-content{background:#3498db}.dark .chat-message.user .message-content{background:#2980b9}.message-content p{font-size:.76rem;line-height:1.5}.typing-indicator{padding:8px 0}.typing-indicator span{height:8px;width:8px}.dark .typing-indicator span{background:#999}.chat-suggestions{background:#fff;border-top:1px solid #e0e0e0;display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem 1rem}.dark .chat-suggestions{background:#1a1a1a;border-top-color:#333}.suggestion-chip{background:#f3f4f6;border:1px solid #d1d5db;border-radius:16px;cursor:pointer;font-size:.85rem;padding:.5rem 1rem;transition:all .2s;white-space:nowrap}.suggestion-chip:hover:not(:disabled){background:#e5e7eb;border-color:#3498db}.suggestion-chip:disabled{cursor:not-allowed;opacity:.5}.dark .suggestion-chip{background:#2a2a2a;border-color:#444;color:#e0e0e0}.dark .suggestion-chip:hover:not(:disabled){background:#333;border-color:#3498db}.chat-input-form{padding:1rem}.dark .chat-input-form{background:#1a1a1a;border-top-color:#333}.chat-input{border-radius:24px;font-size:.95rem;padding:.75rem 1rem}.dark .chat-input{background:#2a2a2a;border-color:#444;color:#fff}.chat-send-button{background:#3498db;border-radius:24px;font-size:.95rem;padding:.75rem 1.5rem}.chat-send-button:hover:not(:disabled){background:#2980b9}@media (max-width:768px){.character-grid{grid-gap:.4rem;display:grid;gap:.4rem;grid-template-columns:repeat(3,1fr)}.character-grid .character-card{max-width:70px;width:100%}.character-grid .character-card-image{aspect-ratio:3/4}.character-grid .character-card-name{padding:4px 2px}.character-grid .character-card-name p{font-size:8px}.message-content{max-width:85%}.chat-suggestions{flex-direction:column}.suggestion-chip{text-align:center;width:100%}.chat-input-form{padding:.75rem}.chat-send-button{font-size:.9rem;padding:.75rem 1rem}}.link-modal-overlay{align-items:center;animation:fadeIn .2s ease-in-out;background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.link-modal-content{animation:slideUp .2s ease-in-out;background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000004d;max-width:500px;width:90%}.dark .link-modal-content{background:#2a2a2a;color:#e0e0e0}.link-modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1.25rem 1.5rem}.dark .link-modal-header{border-bottom-color:#404040}.link-modal-header h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0}.dark .link-modal-header h3{color:#e0e0e0}.link-modal-close{align-items:center;background:none;border:none;border-radius:6px;color:#6b7280;cursor:pointer;display:flex;font-size:2rem;height:32px;justify-content:center;line-height:1;padding:0;transition:all .2s;width:32px}.link-modal-close:hover{background:#f3f4f6;color:#1f2937}.dark .link-modal-close:hover{background:#404040;color:#e0e0e0}.link-modal-body{padding:1.5rem}.selected-text-preview{margin-bottom:1.25rem}.selected-text-preview label{color:#6b7280;display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.preview-text{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;color:#1f2937;font-size:.9375rem;max-height:100px;overflow-y:auto;padding:.75rem;word-break:break-word}.dark .preview-text{background:#1a1a1a;border-color:#404040;color:#d1d5db}.url-input-group{margin-bottom:1rem}.url-input-group label{color:#374151;display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.dark .url-input-group label{color:#d1d5db}.url-input{border:2px solid #d1d5db;border-radius:8px;font-family:inherit;font-size:1rem;padding:.75rem;transition:all .2s;width:100%}.dark .url-input{background:#1a1a1a;border-color:#404040;color:#e0e0e0}.url-input:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a;outline:none}.validation-status{align-items:flex-start;border-radius:8px;display:flex;font-size:.875rem;gap:.75rem;margin-top:1rem;padding:.875rem}.validation-status.validating{background:#f3f4f6;color:#6b7280}.dark .validation-status.validating{background:#1a1a1a;color:#9ca3af}.validation-status.safe{background:#d1fae5;border:1px solid #10b981;color:#065f46}.dark .validation-status.safe{background:#10b98133;border-color:#059669;color:#34d399}.validation-status.suspicious{background:#fef3c7;border:1px solid #f59e0b;color:#92400e}.dark .validation-status.suspicious{background:#f59e0b33;border-color:#d97706;color:#fbbf24}.validation-status.dangerous{background:#fee2e2;border:1px solid #ef4444;color:#991b1b}.dark .validation-status.dangerous{background:#ef444433;border-color:#dc2626;color:#fca5a5}.validation-icon{flex-shrink:0;font-size:1.25rem;line-height:1}.validation-info{flex:1 1}.validation-level{font-weight:500;margin-bottom:.5rem}.validation-reasons{list-style:disc;margin:.5rem 0 0;padding-left:1.25rem}.validation-reasons li{margin-bottom:.25rem}.link-modal-footer{border-top:1px solid #e5e7eb;display:flex;gap:.75rem;justify-content:flex-end;padding:1rem 1.5rem}.dark .link-modal-footer{border-top-color:#404040}.link-modal-button{border:none;border-radius:8px;cursor:pointer;font-size:.9375rem;font-weight:500;padding:.625rem 1.25rem;transition:all .2s}.link-modal-button.cancel{background:#f3f4f6;color:#374151}.link-modal-button.cancel:hover{background:#e5e7eb}.dark .link-modal-button.cancel{background:#404040;color:#d1d5db}.dark .link-modal-button.cancel:hover{background:#4b5563}.link-modal-button.insert{background:#4f46e5;color:#fff}.link-modal-button.insert:hover:not(:disabled){background:#4338ca}.link-modal-button.insert:disabled{cursor:not-allowed;opacity:.5}@media (max-width:640px){.link-modal-content{max-width:none;width:95%}.link-modal-body,.link-modal-footer,.link-modal-header{padding:1rem}}.comment-panel{background:#fff;border-radius:8px;max-height:600px;overflow-y:auto;padding:0;width:100%}.dark .comment-panel{background:#1a1a1a;color:#e0e0e0}.comment-panel-header{margin-bottom:0;padding:1rem}.comment-panel-header h3{align-items:center;display:flex;font-size:.9375rem;font-weight:600;gap:.5rem;margin:0}.comment-count-badge{align-items:center;background:#4f46e5;border-radius:9px;color:#fff;display:inline-flex;font-size:.65625rem;justify-content:center;min-width:18px;padding:.1875rem .375rem}.comment-form{background:#fff;border-radius:8px;border-top:2px solid #e5e7eb;margin-top:1.5rem;padding:1rem}.dark .comment-form{background:#1a1a1a}.author-input{background:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;margin-bottom:.75rem;padding:.5rem;width:100%}.dark .author-input{background:#2a2a2a;border-color:#404040;color:#e0e0e0}.comment-input,.edit-input{background:#fff;border:1px solid #d1d5db;border-radius:6px;font-family:inherit;font-size:1rem;min-height:80px;padding:.75rem;resize:vertical;width:100%}.dark .comment-input,.dark .edit-input{background:#2a2a2a;border-color:#404040;color:#e0e0e0}.comment-input:focus,.edit-input:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a;outline:none}.edit-actions,.form-actions{align-items:center;display:flex;justify-content:space-between;margin-top:.75rem}.char-count{color:#6b7280;font-size:.75rem}.save-edit-button,.submit-button{background:#4f46e5;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1.5rem;transition:all .2s}.save-edit-button:hover:not(:disabled),.submit-button:hover:not(:disabled){background:#4338ca}.save-edit-button:disabled,.submit-button:disabled{cursor:not-allowed;opacity:.5}.cancel-edit-button{background:#6b7280;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1.5rem;transition:all .2s}.cancel-edit-button:hover{background:#4b5563}.comments-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:0;min-height:200px;padding:0}.loading-comments,.no-comments{color:#6b7280;font-style:italic;padding:2rem;text-align:center}.comment-item{background:#fff;border:none;border-radius:8px;padding:1rem;transition:all .2s}.dark .comment-item{background:#1a1a1a;border:none}.comment-item.my-comment{background:#eff6ff;border:none}.dark .comment-item.my-comment{background:#1e293b;border:none}.comment-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.comment-author{color:#1f2937;font-size:.875rem;font-weight:600}.dark .comment-author{color:#e0e0e0}.comment-date{color:#6b7280;font-size:.75rem}.comment-content{color:#374151;font-size:.9375rem;line-height:1.6;white-space:pre-wrap;word-break:break-word}.dark .comment-content{color:#d1d5db}.comment-content .comment-link{color:#3498db;text-decoration:underline;transition:color .2s ease;word-break:break-all}.comment-content .comment-link:hover{color:#2980b9;text-decoration:underline}.dark .comment-content .comment-link{color:#5a9fd4}.dark .comment-content .comment-link:hover{color:#7bb3e0}.comment-link.safe{color:#27ae60;font-weight:500}.dark .comment-link.safe{color:#2ecc71}.comment-link.suspicious{color:#f39c12;font-weight:500}.dark .comment-link.suspicious{color:#f1c40f}.comment-link.unsafe{color:#e74c3c;cursor:not-allowed;font-weight:600;text-decoration:line-through}.dark .comment-link.unsafe{color:#ff6b6b}.comment-link.unsafe:hover{color:#c0392b;text-decoration:line-through}.dark .comment-link.unsafe:hover{color:#ff5252}.safety-indicator{display:inline-block;font-size:.875rem;margin-left:.25rem}.comment-actions{display:flex;gap:.75rem;margin-top:.75rem}.delete-button,.edit-button{border:none;border-radius:4px;cursor:pointer;font-size:.75rem;padding:.25rem .75rem;transition:all .2s}.edit-button{background:#e0e7ff;color:#4f46e5}.edit-button:hover{background:#c7d2fe}.delete-button{background:#fee2e2;color:#dc2626}.delete-button:hover{background:#fecaca}.edit-comment{margin-top:.5rem}.comment-panel::-webkit-scrollbar{width:8px}.comment-panel::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.dark .comment-panel::-webkit-scrollbar-track{background:#2a2a2a}.comment-panel::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}.comment-panel::-webkit-scrollbar-thumb:hover{background:#9ca3af}@media (max-width:768px){.comment-panel{padding:1rem}.comment-form{padding:.75rem}.comment-panel-header h3{font-size:1.125rem}}.tab-panel{display:flex;flex-direction:column;height:100%}.tab-header{background:#f5f5f5;border-bottom:2px solid #e0e0e0;display:flex}.dark .tab-header{background:#2a2a2a;border-bottom-color:#444}.tab-button{align-items:center;background:none;border:none;color:#666;cursor:pointer;display:flex;flex:1 1;font-size:.95rem;gap:.5rem;justify-content:center;padding:.5rem;position:relative;transition:all .3s ease}.dark .tab-button{color:#999}.tab-button:hover{background:#0000000d}.dark .tab-button:hover{background:#ffffff0d}.tab-button.active{background:#fff;color:#3498db}.dark .tab-button.active{background:#1a1a1a;color:#5a9fd4}.tab-button.active:after{background:#3498db;bottom:-2px;content:"";height:2px;left:0;position:absolute;right:0}.dark .tab-button.active:after{background:#5a9fd4}.tab-icon{font-size:1.2rem}.tab-label{font-weight:500}.tab-content{flex:1 1;overflow-y:auto;padding:0}@media (max-width:768px){.tab-button{font-size:.85rem;padding:.375rem .25rem}.tab-icon{font-size:1rem}.tab-label{display:none}}.edit-password-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.edit-password-modal{animation:modalSlideIn .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-width:420px;padding:32px;position:relative;width:90%}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-close-btn{font-size:28px;padding:4px 8px;position:absolute;right:16px;top:16px}.edit-password-modal h2{color:#333;font-size:24px;margin:0 0 12px}.modal-description{color:#666;font-size:14px;margin:0 0 24px}.form-group{margin-bottom:20px}.form-group label{color:#444;margin-bottom:8px}.form-group input[type=password]{border:2px solid #e0e0e0;border-radius:8px;box-sizing:border-box;font-size:16px;padding:12px 16px;transition:border-color .2s;width:100%}.form-group input[type=password]:focus{border-color:#4caf50;outline:none}.error-message{background:#fff3f3;border:1px solid #ffcdd2;border-radius:6px;color:#d32f2f;margin-bottom:20px;padding:12px 16px}.modal-actions{display:flex;gap:12px;margin-bottom:16px}.modal-actions button{border:none;border-radius:8px;cursor:pointer;flex:1 1;font-size:16px;font-weight:600;padding:12px 24px;transition:all .2s}.btn-confirm{background:#4caf50;color:#fff}.btn-confirm:hover:not(:disabled){background:#45a049;box-shadow:0 4px 12px #4caf504d;transform:translateY(-1px)}.modal-actions button:disabled{cursor:not-allowed;opacity:.6}.modal-info{border-top:1px solid #e0e0e0;padding-top:16px;text-align:center}.modal-info small{color:#999;font-size:12px;line-height:1.6}@media (max-width:768px){.edit-password-modal{max-width:360px;padding:24px}.edit-password-modal h2{font-size:20px}.modal-actions button{font-size:14px;padding:10px 20px}}.panel-edit-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000c;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10001}.panel-edit-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #00000080;display:flex;flex-direction:column;max-height:95vh;max-width:95vw;overflow:hidden;width:1200px}.dark .panel-edit-modal{background:#1a1a1a}.modal-header{border-bottom:1px solid #e0e0e0}.dark .modal-header{border-bottom-color:#333}.modal-header h2{color:#333;font-size:20px}.dark .modal-header h2{color:#fff}.modal-close-btn{background:none;border:none;color:#999;cursor:pointer;font-size:32px;height:32px;line-height:1;padding:0;transition:color .2s;width:32px}.modal-close-btn:hover{color:#333}.dark .modal-close-btn:hover{color:#fff}.modal-body{display:flex;flex:1 1;gap:20px;overflow:hidden;padding:20px}.panel-preview{align-items:flex-start;background:#f5f5f5;border-radius:8px;display:flex;flex:1 1;justify-content:center;overflow:auto;position:relative}.dark .panel-preview{background:#0f0f0f}.panel-canvas{align-items:center;display:flex;flex-direction:column;max-width:100%;position:relative}.canvas-extension{background:#fff;flex-shrink:0;width:100%}.canvas-extension-top{border-bottom:1px dashed #ccc;height:100px}.canvas-extension-bottom{border-top:1px dashed #ccc;height:100px}.dark .canvas-extension{background:#2a2a2a}.dark .canvas-extension-top{border-bottom-color:#444}.dark .canvas-extension-bottom{border-top-color:#444}.panel-background-image{border-radius:4px;display:block;height:auto;max-width:100%}.speech-bubble{background:#fffffff2;border:2px solid #333;border-radius:8px;cursor:grab;min-height:40px;min-width:80px;padding:8px 12px;position:absolute;transition:box-shadow .2s;-webkit-user-select:none;user-select:none}.speech-bubble.selected{border-color:#4caf50;box-shadow:0 0 0 3px #4caf50}.speech-bubble.thought{border-radius:50%;border-style:dashed}.speech-bubble.narration{background:#fffffff2;border:2px solid #333;border-radius:8px}.speech-bubble.shout{background:#fffffff2;border-width:3px;font-weight:700}.speech-bubble textarea{background:#0000;border:none;box-sizing:border-box;color:#333;font-family:inherit;height:calc(100% - 16px);min-height:30px;outline:none;resize:none;width:100%}.bubble-delete-btn{align-items:center;background:#f44336;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:16px;height:24px;justify-content:center;line-height:1;position:absolute;right:-12px;top:-12px;transition:transform .2s;width:24px}.bubble-delete-btn:hover{transform:scale(1.1)}.bubble-resize-handle{background:#4caf50;border:2px solid #fff;border-radius:50%;bottom:-6px;cursor:se-resize;height:14px;opacity:0;position:absolute;right:-6px;transition:opacity .2s;width:14px;z-index:10}.speech-bubble.selected .bubble-resize-handle,.speech-bubble:hover .bubble-resize-handle{opacity:1}.bubble-resize-handle:hover{background:#45a049;transform:scale(1.2)}.edit-controls{background:#fff;border:1px solid #e0e0e0;border-radius:8px;overflow-y:auto;padding:20px;width:280px}.dark .edit-controls{background:#2a2a2a;border-color:#444}.edit-controls h3{color:#333;font-size:16px;margin:0 0 16px}.dark .edit-controls h3{color:#fff}.control-group{margin-bottom:20px}.control-group label{color:#555;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.dark .control-group label{color:#ccc}.control-group input[type=range],.control-group select{width:100%}.control-group select{background:#fff;border:1px solid #ddd;border-radius:6px;color:#333;font-size:14px;padding:8px 12px}.dark .control-group select{background:#1a1a1a;border-color:#555;color:#fff}.control-group input[type=range]{margin-top:4px}.btn-add-bubble{background:#4caf50;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:12px;transition:all .2s;width:100%}.btn-add-bubble:hover{background:#45a049;box-shadow:0 4px 12px #4caf504d;transform:translateY(-1px)}.modal-footer{gap:12px}.dark .modal-footer{border-top-color:#333}.btn-cancel,.btn-save{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;padding:10px 24px;transition:all .2s}.btn-cancel{background:#f5f5f5;color:#666}.btn-cancel:hover:not(:disabled){background:#e0e0e0}.btn-save{background:#4caf50;color:#fff}.btn-save:hover:not(:disabled){background:#45a049;box-shadow:0 4px 12px #4caf504d;transform:translateY(-1px)}.btn-cancel:disabled,.btn-save:disabled{cursor:not-allowed;opacity:.6}@media (max-width:1024px){.modal-body{flex-direction:column}.edit-controls{width:100%}}@media (max-width:768px){.panel-edit-modal{border-radius:0;max-height:100vh;max-width:100vw;width:100%}.modal-body{padding:12px}.edit-controls{padding:16px}}.speech-bubble.svg-bubble{background:#0000;border:none;border-radius:0;cursor:grab;min-height:100px;min-width:150px;padding:0;position:absolute}.speech-bubble.svg-bubble .bubble-svg-bg{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:0}.speech-bubble.svg-bubble textarea.bubble-text{background:#0000;border:none;box-sizing:border-box;font-family:inherit;height:44%;left:20%;line-height:1.4;margin:0;outline:none;overflow:hidden;padding:5px;position:absolute;resize:none;text-align:center;top:28%;vertical-align:middle;width:60%;z-index:1}.speech-bubble.svg-bubble.selected{filter:drop-shadow(0 0 4px rgba(76,175,80,.8))}.speech-bubble.svg-bubble:hover{filter:drop-shadow(0 4px 8px rgba(0,0,0,.2))}.full-edit-canvas-container{align-items:flex-start;background:#f0f0f0;display:flex;height:100%;justify-content:flex-start;overflow:auto;padding:20px;position:relative;width:100%}.full-edit-canvas-container canvas{border:1px solid #ccc;box-shadow:0 2px 8px #0000001a}.object-info{background:#000000b3;border-radius:4px;color:#fff;font-size:12px;padding:8px 12px;position:absolute;right:10px;top:10px}.full-edit-toolbar{align-items:center;background:#fff;border-bottom:1px solid #e0e0e0;box-shadow:0 2px 4px #0000001a;display:flex;justify-content:space-between;padding:10px 20px}.toolbar-section{gap:8px}.toolbar-btn,.toolbar-section{align-items:center;display:flex}.toolbar-btn{background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px;gap:5px;padding:8px 16px;transition:all .2s ease}.toolbar-btn:hover:not(:disabled){background:#f5f5f5;border-color:#999}.toolbar-btn:disabled{cursor:not-allowed;opacity:.5}.toolbar-btn.primary{background:#4caf50;border-color:#4caf50;color:#fff}.toolbar-btn.primary:hover:not(:disabled){background:#45a049}.toolbar-btn.danger{color:#d32f2f}.toolbar-btn.danger:hover:not(:disabled){background:#ffebee;border-color:#d32f2f}.toolbar-label{color:#555;font-size:13px;font-weight:500;white-space:nowrap}.toolbar-select{background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px;padding:6px 12px;transition:border-color .2s ease}.toolbar-select:hover{border-color:#999}.toolbar-select:focus{border-color:#4caf50;outline:none}.text-edit-section{align-items:flex-start;flex-direction:column;gap:5px;max-width:300px}.toolbar-textarea{border:1px solid #ddd;border-radius:4px;font-family:inherit;font-size:14px;padding:8px;resize:vertical;transition:border-color .2s ease;width:100%}.toolbar-textarea:focus{border-color:#4caf50;outline:none}.toolbar-slider{accent-color:#4caf50;cursor:pointer;height:6px;width:100px}.toolbar-value{color:#666;font-size:12px;min-width:40px;text-align:right}.full-edit-image-uploader{margin:10px 0}.upload-zone{background:#fff;border:2px dashed #ccc;border-radius:8px;padding:20px;text-align:center;transition:all .3s ease}.upload-zone.drag-active{background:#f0f8f0;border-color:#4caf50}.upload-label{cursor:pointer;display:block}.upload-icon{font-size:48px;margin-bottom:10px}.upload-text{color:#333;font-size:16px;font-weight:500;margin-bottom:5px}.upload-hint{color:#666;font-size:12px}.uploading{align-items:center;display:flex;flex-direction:column;gap:10px}.spinner{border:3px solid #f3f3f3;border-top-color:#3498db;height:30px;width:30px}.upload-error{background:#ffebee;border-radius:4px;color:#c62828;font-size:14px;margin-top:10px;padding:10px}.full-edit-modal-overlay{align-items:center;background:#000c;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.full-edit-modal{background:#fff;border-radius:8px;display:flex;flex-direction:column;height:95vh;max-width:98vw;overflow:hidden;width:98vw}.full-edit-modal-header{align-items:center;background:#f5f5f5;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:15px 20px}.full-edit-modal-header h2{color:#333;font-size:20px;margin:0}.close-btn{color:#666;font-size:24px}.close-btn:hover{background:#e0e0e0}.full-edit-modal-body{background:#f0f0f0;flex:1 1;overflow:auto}.loading{color:#666;font-size:18px;height:100%}.loading,.uploader-overlay{align-items:center;display:flex;justify-content:center}.uploader-overlay{background:#00000080;bottom:0;left:0;position:absolute;right:0;top:0;z-index:10001}.uploader-modal{background:#fff;border-radius:8px;min-width:400px;padding:20px}.uploader-modal h3{margin-top:0}.uploader-modal button{background:#666;border:none;border-radius:4px;color:#fff;cursor:pointer;margin-top:10px;padding:8px 16px}.uploader-modal button:hover{background:#555}.saving-overlay{align-items:center;background:#ffffffe6;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:10002}.saving-spinner{color:#4caf50;font-size:24px;font-weight:500}.segment-navigation{align-items:center;background:#fff;border-bottom:1px solid #e0e0e0;display:flex;gap:20px;justify-content:center;padding:12px 20px}.segment-nav-btn{background:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;transition:background .2s}.segment-nav-btn:hover:not(:disabled){background:#45a049}.segment-nav-btn:disabled{background:#ccc;cursor:not-allowed}.segment-info{color:#333;font-size:16px;font-weight:500;min-width:120px;text-align:center}.render-progress-overlay{align-items:center;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10003}.render-progress-modal{background:#fff;border-radius:8px;box-shadow:0 4px 20px #0000004d;min-width:400px;padding:30px}.render-progress-modal h3{color:#333;font-size:18px;margin-bottom:20px;margin-top:0}.progress-bar{background:#e0e0e0;border-radius:12px;height:24px;margin-bottom:15px;overflow:hidden;width:100%}.progress-fill{background:linear-gradient(90deg,#4caf50,#45a049);height:100%;transition:width .3s ease}.render-progress-modal p{color:#666;font-size:16px;margin:0;text-align:center}.webtoon-detail-page{background-color:#f5f5f5;min-height:calc(100vh - 70px)}.dark .webtoon-detail-page{background-color:#0f0f0f}.webtoon-header{align-items:center;background:#0000;display:flex;justify-content:space-between;margin:0 auto;max-width:1400px;padding:2rem 2rem 0}.webtoon-detail-page .webtoon-title{color:#333;font-size:1.5rem;font-weight:700;margin:0}.dark .webtoon-detail-page .webtoon-title{color:#fff}.share-container{position:relative}.share-toggle-btn{align-items:center;background:#fff;border:1px solid #ddd;border-radius:50%;color:#333;cursor:pointer;display:flex;height:40px;justify-content:center;transition:all .3s ease;width:40px}.dark .share-toggle-btn{background:#2a2a2a;border-color:#444;color:#fff}.share-toggle-btn:hover{background:#3498db;border-color:#3498db;color:#fff;transform:scale(1.1)}.share-menu{animation:slideDown .2s ease;background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 12px #00000026;margin-top:.5rem;min-width:200px;padding:.5rem;position:absolute;right:0;top:100%;z-index:1000}.dark .share-menu{background:#2a2a2a;border-color:#444;box-shadow:0 4px 12px #0000004d}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.share-menu-btn{align-items:center;background:none;border:none;border-radius:4px;color:#333;cursor:pointer;display:flex;font-size:.9rem;gap:.8rem;padding:.6rem .8rem;text-align:left;transition:background-color .2s ease;width:100%}.dark .share-menu-btn{color:#fff}.share-menu-btn:hover{background-color:#f0f0f0}.dark .share-menu-btn:hover{background-color:#3a3a3a}.share-icon{align-items:center;display:flex;font-size:1.1rem;justify-content:center;width:24px}.share-label{flex:1 1}.webtoon-detail-container{display:flex;gap:2rem;margin:0 auto;max-width:1400px;padding:2rem}.webtoon-content{display:flex;flex:0 0 60%;flex-direction:column;gap:1rem;position:relative}.interaction-panel{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;flex:0 0 40%;height:calc(100vh - 130px);overflow:hidden;padding:1.5rem;position:-webkit-sticky;position:sticky;top:90px}.interaction-title{border-bottom:2px solid #e0e0e0;color:#333;font-size:.75rem;font-weight:700;margin:0 0 1rem;padding-bottom:.5rem}.dark .interaction-title{border-bottom-color:#333;color:#fff}.dark .interaction-panel{background:#1a1a1a;box-shadow:0 2px 8px #0000004d}.error-message{color:#666;font-size:1.2rem;padding:4rem 2rem}.dark .error-message{color:#999}@media (max-width:1024px){.webtoon-detail-container{flex-direction:column;padding:1rem}.webtoon-content{flex:1 1}.interaction-panel{flex:1 1;height:auto;min-height:500px;position:static}}@media (max-width:768px){.webtoon-header{align-items:center;flex-direction:row;gap:.5rem}.webtoon-detail-page .webtoon-title{flex:1 1;font-size:1.15rem;line-height:1.3;max-width:none;overflow:visible;overflow-wrap:break-word;text-overflow:clip;white-space:normal;word-break:keep-all}.share-container{flex-shrink:0}.share-menu{left:auto;right:0}}@media (max-width:480px){.webtoon-detail-container{gap:1rem}}.header-actions{align-items:center;display:flex;gap:12px}.edit-webtoon-btn,.exit-edit-btn{align-items:center;background:#fff;border:1px solid #4caf50;border-radius:8px;color:#4caf50;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:10px 16px;transition:all .2s}.edit-webtoon-btn:hover{background:#4caf50;box-shadow:0 4px 12px #4caf504d;color:#fff;transform:translateY(-1px)}.exit-edit-btn{border-color:#f44336;color:#f44336}.exit-edit-btn:hover{background:#f44336;box-shadow:0 4px 12px #f443364d;color:#fff;transform:translateY(-1px)}.dark .edit-webtoon-btn,.dark .exit-edit-btn{background:#2a2a2a}.dark .edit-webtoon-btn:hover{background:#4caf50;color:#fff}.dark .exit-edit-btn:hover{background:#f44336;color:#fff}.edit-mode-banner{animation:bannerSlideDown .3s ease-out;background:#fff3cd;border-bottom:2px solid #ffc107;box-shadow:0 2px 8px #0000001a;color:#856404;font-weight:600;left:0;padding:12px 20px;position:fixed;right:0;text-align:center;top:70px;z-index:9999}@keyframes bannerSlideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.dark .edit-mode-banner{background:#3d3d00;border-bottom-color:#ffc107;color:#ffe082}@media (max-width:768px){.edit-webtoon-btn,.exit-edit-btn{font-size:13px;padding:8px 12px}.edit-webtoon-btn svg,.exit-edit-btn svg{height:16px;width:16px}.header-actions{gap:8px}}:root{--embed-primary-color:#667eea;--embed-secondary-color:#764ba2;--embed-user-message-bg:#3498db;--embed-bot-message-bg:#f5f5f5;--embed-border-radius:12px;--embed-font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto",sans-serif}.embed-chat-page{background:#f9f9f9;border:1px solid #cecece;border-radius:16px;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-family:var(--embed-font-family);height:100vh;overflow:hidden;width:100%}.embed-chat-page.error,.embed-chat-page.loading{align-items:center;color:#666;display:flex;flex-direction:column;justify-content:center;padding:2rem}.loading-spinner{animation:spin .8s linear infinite;border:4px solid #e0e0e0;border-top:4px solid var(--embed-user-message-bg);height:40px;width:40px}.error-message{color:#e74c3c}.embed-header{background:#1a1a1a;border-bottom:2px solid #fff3;border-radius:16px 16px 0 0;color:#fff;flex-shrink:0;padding:20px 16px 12px}.embed-title{font-size:24px;font-weight:600;margin:0;text-align:left}.embed-content{display:flex;flex:1 1;flex-direction:column;overflow:hidden}.embed-character-section{background:#fff;border-bottom:1px solid #e0e0e0;flex-shrink:0;padding:.75rem 1rem}.section-title{color:#333;font-size:.85rem;font-weight:600;margin:0 0 .5rem}.character-note{color:#666;font-size:.75rem;line-height:1.4;margin:.3rem 0 .5rem}.no-characters{color:#999;font-size:.9rem;padding:1rem;text-align:center}.character-grid{grid-gap:clamp(.3rem,1.5vw,.6rem);display:grid;gap:clamp(.3rem,1.5vw,.6rem);grid-template-columns:repeat(auto-fill,minmax(min(70px,100%),1fr));max-height:min(35vh,250px);overflow-y:auto;padding:.5rem .25rem;scrollbar-width:thin}.character-grid::-webkit-scrollbar{width:4px}.character-grid::-webkit-scrollbar-thumb{background:#ccc;border-radius:2px}.embed-chat-section{background:#f9f9f9;display:flex;flex:1 1;flex-direction:column;overflow:hidden}.chat-header{align-items:center;background:#fff;border-bottom:1px solid #e0e0e0;display:flex;flex-shrink:0;flex-wrap:wrap;gap:.75rem;justify-content:space-between;padding:.6rem 1rem}.chat-character-name{color:#333;font-size:.9rem;font-weight:600}.character-note-inline{color:#666;flex:1 1;font-size:.7rem;min-width:150px}.clear-history-btn{background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;color:#666;cursor:pointer;font-size:.75rem;padding:.3rem .7rem;transition:all .2s}.clear-history-btn:hover{background:#e5e7eb;color:#333}.no-character-selected{align-items:center;color:#999;display:flex;flex:1 1;font-size:1rem;justify-content:center}.chat-welcome{color:#666;font-size:.9rem;padding:1.5rem;text-align:center}.chat-welcome p{margin:.5rem 0}.chat-messages{background:#f9f9f9;display:flex;flex:1 1;flex-direction:column;gap:.75rem;overflow-y:auto;padding:1rem}.chat-message{animation:fadeIn .3s ease;display:flex;gap:.6rem}.chat-message.user{flex-direction:row-reverse}.message-avatar{align-items:center;background:#e0e0e0;border-radius:50%;display:flex;flex-shrink:0;font-size:1rem;height:32px;justify-content:center;overflow:hidden;width:32px}.chat-message.user .message-avatar{background:#3498db;background:var(--embed-user-message-bg)}.character-avatar{height:100%;object-fit:cover;width:100%}.message-avatar span{color:#666;font-size:1rem;font-weight:700}.chat-message.user .message-avatar{background:#00b5b4}.message-content{background:#f5f5f5;background:var(--embed-bot-message-bg);border-radius:12px;border-radius:var(--embed-border-radius);box-shadow:0 1px 2px #0000001a;max-width:75%;padding:.65rem .9rem}.chat-message.user .message-content{background:#00b5b4;color:#fff}.message-content p{word-wrap:break-word;font-size:18px;line-height:1.4;margin:0;white-space:pre-wrap}.typing-indicator{display:flex;gap:4px;padding:6px 0}.typing-indicator span{animation:typing 1.4s infinite;background:#666;border-radius:50%;height:7px;width:7px}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}.chat-input-form{background:#fff;border-top:1px solid #e0e0e0;display:flex;flex-shrink:0;gap:.5rem;padding:.75rem 1rem}.chat-input{border:1px solid #ddd;border-radius:20px;flex:1 1;font-size:.85rem;outline:none;padding:.65rem 1rem;transition:border-color .3s ease}.chat-input:focus{border-color:#3498db;border-color:var(--embed-user-message-bg)}.chat-input:disabled{background:#f5f5f5;cursor:not-allowed;opacity:.6}.chat-send-button{background:#00b5b4;border:none;border-radius:20px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:500;padding:.65rem 1.2rem;transition:background-color .3s ease;white-space:nowrap}.chat-send-button:hover:not(:disabled){filter:brightness(.9)}.chat-send-button:disabled{cursor:not-allowed;opacity:.6}@keyframes typing{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-8px)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width:600px){.embed-header{padding:16px 16px 8px}.embed-title{font-size:19px}.character-grid{gap:clamp(.25rem,1vw,.4rem);grid-template-columns:repeat(auto-fill,minmax(min(55px,100%),1fr));max-height:min(25vh,150px)}.message-content{max-width:85%}.message-content p{font-size:16px}.chat-input-form{padding:.6rem .8rem}.chat-send-button{font-size:.8rem;padding:.6rem 1rem}}@media (min-width:601px) and (max-width:900px){.character-grid{gap:clamp(.35rem,1.2vw,.5rem);grid-template-columns:repeat(auto-fill,minmax(min(68px,100%),1fr));max-height:min(30vh,200px)}}@media (min-width:901px){.character-grid{gap:clamp(.4rem,1.5vw,.6rem);grid-template-columns:repeat(auto-fill,minmax(min(75px,100%),1fr));max-height:min(35vh,250px)}}.embed-chat-page.dark{background:#0f0f0f;border-color:#333}.embed-chat-page.dark.error,.embed-chat-page.dark.loading{color:#e0e0e0}.embed-chat-page.dark .error-message{color:#ef4444}.embed-chat-page.dark .embed-header{background:#1a1a1a;border-bottom-color:#333}.embed-chat-page.dark .embed-title{color:#e0e0e0}.embed-chat-page.dark .embed-character-section{background:#1a1a1a;border-bottom-color:#333}.embed-chat-page.dark .section-title{color:#e0e0e0}.embed-chat-page.dark .character-note{color:#999}.embed-chat-page.dark .no-characters{color:#666}.embed-chat-page.dark .character-grid::-webkit-scrollbar-thumb{background:#444}.embed-chat-page.dark .character-grid::-webkit-scrollbar-thumb:hover{background:#666}.embed-chat-page.dark .embed-chat-section{background:#0f0f0f}.embed-chat-page.dark .chat-header{background:#1a1a1a;border-bottom-color:#333}.embed-chat-page.dark .chat-character-name{color:#e0e0e0}.embed-chat-page.dark .character-note-inline{color:#999}.embed-chat-page.dark .clear-history-btn{background:#2a2a2a;border-color:#444;color:#e0e0e0}.embed-chat-page.dark .clear-history-btn:hover{background:#333;color:#fff}.embed-chat-page.dark .no-character-selected{color:#666}.embed-chat-page.dark .chat-welcome{color:#999}.embed-chat-page.dark .chat-messages{background:#0f0f0f}.embed-chat-page.dark .message-avatar{background:#2a2a2a}.embed-chat-page.dark .message-avatar span{color:#999}.embed-chat-page.dark .message-content{background:#1a1a1a;box-shadow:0 1px 2px #0000004d;color:#e0e0e0}.embed-chat-page.dark .chat-message.user .message-content{background:#2980b9;color:#fff}.embed-chat-page.dark .typing-indicator span{background:#999}.embed-chat-page.dark .chat-input-form{background:#1a1a1a;border-top-color:#333}.embed-chat-page.dark .chat-input{background:#2a2a2a;border-color:#444;color:#fff}.embed-chat-page.dark .chat-input::placeholder{color:#999}.embed-chat-page.dark .chat-input:focus{border-color:#2980b9}.embed-chat-page.dark .chat-input:disabled{background:#1a1a1a;color:#666}.embed-chat-page.dark .chat-send-button{background:#00b5b4}.embed-chat-page.dark .chat-send-button:hover:not(:disabled){filter:brightness(1.1)}body{background:#fff;margin:0;padding:0}.embed-webtoon-page{background:#fff;border:none;border-radius:0;display:flex;flex-direction:column;min-height:100vh}.embed-webtoon-page.error,.embed-webtoon-page.loading{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:400px;padding:2rem}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #f3f4f6;border-radius:50%;border-top-color:#6366f1;height:48px;margin-bottom:1rem;width:48px}.error-message{color:#dc2626;font-size:1rem}.embed-webtoon-header{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;gap:1rem;justify-content:space-between;padding:1rem 1.5rem;position:-webkit-sticky;position:sticky;top:0;z-index:100}.header-logo{align-items:center;color:#1f2937;display:flex;flex-shrink:0;font-size:1.125rem;font-weight:600;gap:.5rem}.logo-icon{font-size:1.5rem}.webtoon-title{color:#374151;flex:1 1;font-size:1.25rem;margin:0;text-align:center}.dark-mode-toggle{border:none;border-radius:8px;flex-shrink:0;font-size:1.5rem;padding:.5rem;transition:background .2s}.dark-mode-toggle:hover{background:#f3f4f6}.embed-webtoon-content{flex:1 1;margin:0 auto;max-width:100%;width:100%}.embed-webtoon-footer{background:#f9fafb;border-top:1px solid #e5e7eb;padding:2rem 1.5rem}.footer-placeholder{border:2px dashed #d1d5db;border-radius:8px;color:#9ca3af;font-size:.875rem;padding:1rem;text-align:center}@media (max-width:768px){.embed-webtoon-header{padding:.75rem 1rem}.header-logo{font-size:1rem}.logo-icon{font-size:1.25rem}.webtoon-title{font-size:1rem}.dark-mode-toggle{font-size:1.25rem;padding:.375rem}}@media (max-width:480px){.logo-text{display:none}.webtoon-title{font-size:.875rem}}.embed-webtoon-page.dark{background:#000;border-color:#333}.embed-webtoon-page.dark~body,body:has(.embed-webtoon-page.dark){background:#000}.embed-webtoon-page.dark.error,.embed-webtoon-page.dark.loading{color:#e0e0e0}.embed-webtoon-page.dark .error-message{color:#ef4444}.embed-webtoon-page.dark .embed-webtoon-header{background:#1a1a1a;border-bottom-color:#333}.embed-webtoon-page.dark .dark-mode-toggle,.embed-webtoon-page.dark .header-logo,.embed-webtoon-page.dark .webtoon-title{color:#e0e0e0}.embed-webtoon-page.dark .dark-mode-toggle:hover{background:#2a2a2a}.embed-webtoon-page.dark .embed-webtoon-footer{background:#1a1a1a;border-top-color:#333}.embed-webtoon-page.dark .footer-placeholder{border-color:#444;color:#666}.embed-webtoon-page .panel-viewer{border-radius:0;padding:0}.admin-login-page{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.admin-login-container{max-width:420px;width:100%}.admin-login-card{animation:slideUp .5s ease;background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;padding:40px}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.admin-login-title{color:#1a1a2e;font-size:32px;font-weight:800;margin:0 0 8px;text-align:center}.admin-login-subtitle{color:#666;font-size:14px;margin:0 0 32px;text-align:center}.admin-login-form{gap:20px}.admin-login-form,.form-group{display:flex;flex-direction:column}.form-group{gap:8px}.form-group label{color:#333;font-size:14px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.form-group input{background:#f8f8f8;border:2px solid #e0e0e0;border-radius:10px;font-size:16px;padding:12px 16px;transition:all .3s ease}.form-group input:focus{background:#fff;border-color:#667eea;box-shadow:0 0 0 4px #667eea1a;outline:none}.error-message{animation:shake .5s ease;background:#fee;border-radius:8px;color:#c00;font-size:14px;padding:12px;text-align:center}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-5px)}20%,40%,60%,80%{transform:translateX(5px)}}.admin-login-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:16px;font-weight:700;letter-spacing:1px;padding:14px;text-transform:uppercase;transition:all .3s ease}.admin-login-btn:hover:not(:disabled){box-shadow:0 10px 30px #764ba266;transform:translateY(-2px)}.admin-login-btn:disabled{cursor:not-allowed;opacity:.6}.admin-login-footer{border-top:1px solid #e0e0e0;margin-top:24px;padding-top:24px;text-align:center}.back-to-home-btn{background:none;border:none;color:#666;cursor:pointer;font-size:14px;padding:8px 16px;transition:all .3s ease}.back-to-home-btn:hover{color:#667eea;transform:translateX(-5px)}.dark .admin-login-card{background:#2a2a2a}.dark .admin-login-title{color:#f0f0f0}.dark .form-group label{color:#ddd}.dark .form-group input{background:#1a1a1a;border-color:#444;color:#f0f0f0}.dark .form-group input:focus{background:#2a2a2a;border-color:#764ba2}.stats-overview{margin:0 auto;max-width:1200px}.section-title{color:#1a1a2e;font-size:28px;font-weight:800;margin:0 0 32px}.section-subtitle{color:#333;font-size:20px;font-weight:700;margin:0 0 20px}.stats-cards{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:48px}.stat-card{background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;display:flex;gap:20px;padding:24px;transition:all .3s ease}.stat-card:hover{box-shadow:0 8px 30px #0000001f;transform:translateY(-5px)}.stat-icon{font-size:48px;opacity:.8}.stat-content{flex:1 1}.stat-content h3{color:#666;font-size:14px;font-weight:600;letter-spacing:.5px;margin:0 0 8px;text-transform:uppercase}.stat-value{color:#1a1a2e;font-size:32px;font-weight:800;margin:0 0 8px}.stat-meta{color:#999;font-size:12px}.stats-section{border-radius:16px;box-shadow:0 4px 20px #00000014;margin-bottom:24px;padding:24px}.popular-webtoons-table{overflow-x:auto}.popular-webtoons-table table{border-collapse:collapse;width:100%}.popular-webtoons-table th{border-bottom:2px solid #e0e0e0;color:#666;font-size:12px;font-weight:600;letter-spacing:.5px;padding:12px;text-align:left;text-transform:uppercase}.popular-webtoons-table td{border-bottom:1px solid #f0f0f0;padding:12px}.popular-webtoons-table tr:hover{background:#f8f8f8}.popular-webtoons-table .rank{font-size:18px;font-weight:700;width:60px}.popular-webtoons-table .title{color:#1a1a2e;font-weight:600}.popular-webtoons-table .views{color:#667eea;font-weight:600}.popular-webtoons-table .date{color:#999;font-size:14px}.trend-chart{background:#f8f8f8;border-radius:12px;min-height:200px;padding:20px}.simple-chart{align-items:flex-end;display:flex;gap:2px;height:200px}.chart-bar{cursor:pointer;flex:1 1;flex-direction:column;justify-content:flex-end}.chart-bar-fill{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:4px 4px 0 0;transition:all .3s ease;width:100%}.chart-bar:hover .chart-bar-fill{background:linear-gradient(135deg,#764ba2,#667eea)}.chart-label{color:#666;font-size:10px;margin-top:8px}.no-data{color:#999;font-size:16px}.no-data,.stats-loading{padding:40px;text-align:center}.stats-loading{color:#666;font-size:18px}@media (max-width:768px){.stats-cards{grid-template-columns:1fr}.stat-value{font-size:24px}.popular-webtoons-table{font-size:14px}.chart-label{font-size:8px}}.view-logs-modal{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:1000px;overflow:hidden;width:100%}.modal-info h3{margin:0 0 8px}.modal-info p{color:#666;font-size:14px;margin:0}.modal-info strong{color:#667eea;font-weight:600}.logs-table-wrapper{flex:1 1;margin:20px 0;overflow:auto;padding:0 24px}.logs-table{border-collapse:collapse;font-size:14px;width:100%}.logs-table thead{background:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:10}.logs-table th{border-bottom:2px solid #e0e0e0;color:#333;font-weight:600;padding:12px 8px;text-align:left;white-space:nowrap}.logs-table td{border-bottom:1px solid #f0f0f0;color:#555;padding:12px 8px}.logs-table tbody tr:hover{background-color:#f8f9fa}.ua-cell{color:#495057}.referrer-cell{color:#06c;cursor:help;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-logs{color:#999;font-size:16px;padding:40px;text-align:center}@media (max-width:768px){.view-logs-modal{max-height:95vh;max-width:95%}.logs-table{font-size:12px}.logs-table td,.logs-table th{padding:8px 4px}.modal-header h2{font-size:20px}.referrer-cell{max-width:100px}}.webtoon-management{background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;padding:24px}.management-header{flex-wrap:wrap;gap:16px;margin-bottom:24px}.management-header h2{color:#1a1a2e;font-size:24px;font-weight:700}.management-actions{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.search-form{display:flex;gap:0}.search-input{border:2px solid #e0e0e0;border-radius:8px 0 0 8px;font-size:14px;padding:8px 12px;width:200px}.search-btn{background:#667eea;border:none;border-radius:0 8px 8px 0;color:#fff;cursor:pointer;font-size:16px;padding:8px 16px}.search-btn:hover{background:#5567d8}.sort-select{border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;font-size:14px;padding:8px 12px}.batch-delete-btn{background:#dc3545;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:all .3s ease}.batch-delete-btn:hover{background:#c82333;transform:translateY(-2px)}.webtoons-table-wrapper{margin-bottom:24px;overflow-x:auto}.webtoons-table{border-collapse:collapse;width:100%}.webtoons-table th{background:#f8f8f8;border-bottom:2px solid #e0e0e0;color:#666;font-size:12px;font-weight:600;letter-spacing:.5px;padding:12px;text-align:left;text-transform:uppercase}.webtoons-table td{border-bottom:1px solid #f0f0f0;padding:12px;vertical-align:middle}.webtoons-table tr:hover{background:#f8f8f8}.webtoon-title{font-size:14px}.webtoon-views{color:#667eea;font-weight:600}.webtoon-date{color:#999;font-size:14px}.webtoon-actions{display:flex;gap:8px}.view-btn:hover{background:#667eea}.stats-btn:hover{background:#28a745}.delete-btn:hover{background:#dc3545}.embed-btn:hover{background:#f59e0b}.loading-state,.no-webtoons{color:#999;font-size:16px;padding:40px;text-align:center}.modal-body{padding:1.5rem}.embed-section{margin-bottom:1.5rem}.embed-section h4{color:#374151;font-size:.875rem;font-weight:600;letter-spacing:.05em;margin:0 0 .75rem;text-transform:uppercase}.current-theme{background:#f9fafb;border-radius:8px;padding:1rem}.theme-display{align-items:center;display:flex}.no-theme{color:#9ca3af;font-size:.875rem}.theme-select{border:1px solid #d1d5db;border-radius:6px;cursor:pointer;font-size:.875rem;padding:.625rem .75rem;transition:all .2s;width:100%}.theme-select:focus{ring:2px;ring-color:#6366f133;border-color:#6366f1;outline:none}.embed-description{color:#6b7280;font-size:.875rem;margin:0 0 1rem}.embed-options{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.copy-embed-btn{background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:.875rem;font-weight:500;padding:.625rem 1rem;transition:all .2s}.copy-embed-btn:hover{background:#e5e7eb}.copy-embed-btn.primary{background:#6366f1;border-color:#6366f1;color:#fff}.copy-embed-btn.primary:hover{background:#4f46e5}.embed-preview{background:#1f2937;border-radius:6px;overflow-x:auto;padding:1rem}.embed-preview code{color:#e5e7eb;font-family:Monaco,Courier New,monospace;font-size:.75rem;line-height:1.5;white-space:pre-wrap;word-break:break-all}@media (max-width:768px){.management-header{align-items:flex-start;flex-direction:column}.management-actions{width:100%}.search-input{flex:1 1}.webtoons-table{font-size:14px}.webtoon-thumbnail{height:40px;width:40px}.modal-content{border-radius:0;max-height:100vh;max-width:100%}.embed-options{flex-direction:column}.copy-embed-btn{width:100%}}.trash-bin{background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;padding:24px}.trash-header{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:24px}.trash-header h2{color:#1a1a2e;font-size:24px;font-weight:700;margin:0}.trash-actions{align-items:center;gap:12px}.batch-restore-btn{background:#28a745;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:all .3s ease}.batch-restore-btn:hover{background:#218838;transform:translateY(-2px)}.trash-notice{background:#fff3cd;border:1px solid #ffeaa7;border-radius:8px;margin-bottom:24px;padding:12px 16px}.trash-notice p{color:#856404;font-size:14px;font-weight:600;margin:0}.trash-table-wrapper{margin-bottom:24px;overflow-x:auto}.trash-table{border-collapse:collapse;width:100%}.trash-table th{background:#f8f8f8;border-bottom:2px solid #e0e0e0;color:#666;font-size:12px;font-weight:600;letter-spacing:.5px;padding:12px;text-align:left;text-transform:uppercase}.trash-table td{border-bottom:1px solid #f0f0f0;padding:12px;vertical-align:middle}.trash-table tr:hover{background:#f8f8f8}.trash-table tr.expiring-soon{background:#fff3cd}.trash-table tr.expiring-soon:hover{background:#ffeaa7}.webtoon-thumbnail{border-radius:8px;height:50px;object-fit:cover;width:50px}.webtoon-title{color:#1a1a2e;font-weight:600;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deleted-by{color:#666;font-size:14px}.deleted-date{color:#999;font-size:14px}.deleted-date small{color:#bbb;font-size:12px}.auto-delete{color:#666;font-weight:600}.auto-delete.warning{color:#dc3545;font-weight:700}.trash-actions{display:flex;gap:8px}.action-btn{background:#f0f0f0;border:none;border-radius:6px;cursor:pointer;font-size:16px;height:32px;transition:all .3s ease;width:32px}.action-btn:hover{transform:translateY(-2px)}.restore-btn:hover{background:#28a745}.permanent-delete-btn:hover{background:#dc3545}.no-trash{font-size:16px;padding:60px 20px;text-align:center}.loading-state,.no-trash{color:#999}.page-btn{background:#fff;border:2px solid #e0e0e0;border-radius:8px;font-weight:600;transition:all .3s ease}.page-btn:hover:not(:disabled){border-color:#667eea;color:#667eea}.page-btn:disabled{opacity:.5}.page-info{font-weight:600}@media (max-width:768px){.trash-header{align-items:flex-start;flex-direction:column}.trash-table{font-size:14px}.webtoon-thumbnail{height:40px;width:40px}.webtoon-title{max-width:150px}}.themes-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.theme-preview{display:flex;flex-direction:column;height:120px;justify-content:space-between;padding:1rem}.theme-preview-header{color:#fff;font-size:1rem;font-weight:600}.theme-preview-message{align-self:flex-end;border-radius:12px;color:#fff;font-size:.75rem;max-width:70%;padding:.5rem 1rem}.theme-colors{display:flex;gap:.5rem;margin-bottom:.75rem}.color-swatch{border-radius:6px;height:32px;width:32px}.modal-content{max-width:700px}.form-group input[type=color],.form-group input[type=text],.form-group textarea{border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;padding:.5rem .75rem;transition:all .2s;width:100%}.form-group input[type=text]:focus,.form-group textarea:focus{ring:2px;ring-color:#6366f133;border-color:#6366f1;outline:none}.form-group textarea{min-height:60px;resize:vertical}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}@media (max-width:768px){.form-row,.themes-grid{grid-template-columns:1fr}.modal-content{border-radius:0;max-height:100vh;max-width:100%}}.theme-management{padding:1.5rem}.management-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem}.management-header h2{color:#1f2937;font-size:1.5rem;font-weight:600;margin:0}.create-theme-btn{background:#6366f1;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.625rem 1.25rem;transition:background .2s}.create-theme-btn:hover{background:#4f46e5}.themes-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.theme-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;transition:all .2s}.theme-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.theme-card.inactive{opacity:.6}.panel-viewer-preview{flex-direction:column;height:160px;padding:1rem;position:relative}.panel-viewer-preview,.preview-header{display:flex;justify-content:space-between}.preview-header{align-items:center}.preview-logo{color:#374151;font-size:.875rem;font-weight:600}.preview-toggle{font-size:1.25rem}.preview-video-cue{align-items:center;display:flex;height:60px;justify-content:center;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:60px}.preview-cue-outer-ring{height:100%;opacity:.4;width:100%}.preview-cue-inner-ring,.preview-cue-outer-ring{border:2px solid;border-radius:50%;position:absolute}.preview-cue-inner-ring{height:85%;opacity:.5;width:85%}.preview-cue-circle{align-items:center;border-radius:50%;display:flex;height:70%;justify-content:center;opacity:.85;position:relative;width:70%}.preview-play-icon{color:#fff;font-size:14px;margin-left:2px}.preview-footer{background:#fffc;border-radius:6px;color:#6b7280;font-size:.75rem;font-weight:500;padding:.5rem;text-align:center}.theme-info{border-bottom:1px solid #e5e7eb;padding:1rem}.theme-info h3{color:#1f2937;font-size:1.125rem;font-weight:600;margin:0 0 .5rem}.theme-code{color:#6b7280;font-size:.875rem;margin-bottom:.75rem}.theme-code code{background:#f3f4f6;border-radius:4px;font-family:monospace;font-size:.875rem;padding:.125rem .5rem}.theme-features{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.feature-badge{border-radius:4px;font-size:.75rem;font-weight:500;padding:.25rem .5rem}.feature-badge.active{background:#d1fae5;color:#065f46}.feature-badge.inactive{background:#fee2e2;color:#991b1b}.theme-color-info{align-items:center;color:#6b7280;display:flex;font-size:.875rem;gap:.5rem;margin-bottom:.75rem}.theme-color-info code{background:#f3f4f6;border-radius:4px;font-family:monospace;font-size:.75rem;padding:.125rem .5rem}.color-swatch{border:2px solid #e5e7eb;border-radius:4px;cursor:pointer;height:24px;width:24px}.theme-status{color:#6b7280;font-size:.875rem}.theme-actions{display:flex;gap:.5rem;padding:.75rem 1rem}.theme-actions button{border:none;border-radius:6px;cursor:pointer;flex:1 1;font-size:.875rem;padding:.5rem;transition:all .2s}.edit-btn{background:#f3f4f6;color:#374151}.edit-btn:hover{background:#e5e7eb}.delete-btn{background:#fee2e2;color:#dc2626}.delete-btn:hover{background:#fecaca}.loading-state{color:#6b7280}.loading-state,.no-themes{font-size:1rem;padding:3rem}.no-themes{color:#9ca3af;text-align:center}.modal-overlay{background:#00000080;padding:1rem}.modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a;max-height:90vh;max-width:600px;overflow-y:auto;width:100%}.modal-header{border-bottom:1px solid #e5e7eb;padding:1.5rem}.modal-header h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0}.close-btn{background:none;border-radius:4px;color:#9ca3af;font-size:2rem;height:32px;padding:0;width:32px}.close-btn:hover{background:#f3f4f6;color:#374151}.theme-form{padding:1.5rem}.form-section{margin-bottom:2rem}.form-section h4{border-bottom:1px solid #e5e7eb;color:#374151;font-size:1rem;font-weight:600;margin:0 0 1rem;padding-bottom:.5rem}.form-group{margin-bottom:1rem}.form-group label{color:#374151;display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.form-group input[type=color],.form-group input[type=text],.form-group select{border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;padding:.5rem .75rem;transition:all .2s;width:100%}.form-group input[type=text]:focus,.form-group select:focus{ring:2px;ring-color:#6366f133;border-color:#6366f1;outline:none}.form-group input[type=text]:disabled{background:#f3f4f6;color:#9ca3af;cursor:not-allowed}.form-group input[type=color]{cursor:pointer;height:40px}.form-group select{background-color:#fff;cursor:pointer}.color-input{font-family:monospace;margin-top:.5rem}.checkbox-group label{align-items:center;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;display:flex;gap:.5rem;padding:.75rem;transition:all .2s}.checkbox-group label:hover{background:#f9fafb;border-color:#d1d5db}.checkbox-group input[type=checkbox]{cursor:pointer;height:18px;width:18px}.checkbox-group span{color:#374151;font-size:.875rem}.form-actions{border-top:1px solid #e5e7eb;display:flex;gap:.75rem;justify-content:flex-end;padding-top:1rem}.cancel-btn,.submit-btn{border:none;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500;padding:.625rem 1.25rem;transition:all .2s}.cancel-btn{background:#f3f4f6;color:#374151}.cancel-btn:hover{background:#e5e7eb}.submit-btn{background:#6366f1;color:#fff}.submit-btn:hover{background:#4f46e5}@media (max-width:768px){.themes-grid{grid-template-columns:1fr}.modal-content{border-radius:0;max-height:100vh;max-width:100%}}.modal-overlay{align-items:center;background-color:#000000b3;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.survey-responses-modal{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:1200px;overflow:hidden;width:100%}.modal-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:2px solid #f0f0f0;color:#fff;display:flex;justify-content:space-between;padding:20px 24px}.modal-header h2{font-size:24px;font-weight:600;margin:0}.close-btn{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:32px;height:40px;justify-content:center;line-height:1;transition:all .2s;width:40px}.close-btn:hover{background:#ffffff4d;transform:rotate(90deg)}.modal-info{background:#f8f9fa;border-bottom:1px solid #e0e0e0;padding:20px 24px}.modal-info h3{color:#333;font-size:18px;margin:0 0 12px}.stats-row{display:flex;flex-wrap:wrap;gap:24px}.stat-item{display:flex;flex-direction:column;gap:4px}.stat-label{color:#666;font-size:13px}.stat-value{color:#333;font-size:20px;font-weight:700}.like-rate{color:#667eea}.responses-table-wrapper{flex:1 1;margin:20px 0;overflow:auto;padding:0 24px}.responses-table{border-collapse:collapse;font-size:14px;width:100%}.responses-table thead{background:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:10}.responses-table th{border-bottom:2px solid #e0e0e0;color:#333;font-weight:600;padding:12px 8px;text-align:left;white-space:nowrap}.responses-table td{border-bottom:1px solid #f0f0f0;color:#555;padding:12px 8px}.responses-table tbody tr:hover{background-color:#f8f9fa}.ip-cell code{background:#f0f0f0;border-radius:4px;color:#d63384;font-family:Monaco,Courier New,monospace;font-size:13px;padding:4px 8px}.date-cell{color:#666;font-size:13px;white-space:nowrap}.preference-cell{text-align:center}.preference-badge{border-radius:12px;display:inline-block;font-size:13px;font-weight:600;padding:4px 12px}.preference-badge.like{background:#d4edda;color:#155724}.preference-badge.dislike{background:#f8d7da;color:#721c24}.group-cell{text-align:center}.group-badge{border-radius:10px;display:inline-block;font-size:12px;font-weight:600;padding:4px 10px}.group-badge.group-a{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.group-badge.group-b{background:linear-gradient(135deg,#9f7aea,#b794f4);color:#fff}.comment-cell{color:#495057;font-size:13px;max-width:300px}.no-comment{color:#999;font-style:italic}.no-responses{color:#999}.loading-state,.no-responses{font-size:16px;padding:40px;text-align:center}.loading-state{color:#666}.pagination{align-items:center;border-top:1px solid #e0e0e0;display:flex;gap:16px;justify-content:center;padding:16px 24px}.page-btn{background:#667eea;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s}.page-btn:hover:not(:disabled){background:#5568d3;transform:translateY(-1px)}.page-btn:disabled{background:#ccc;cursor:not-allowed;opacity:.6}.page-info{color:#666;font-size:14px;min-width:100px;text-align:center}.modal-footer{background:#f8f9fa;border-top:1px solid #e0e0e0;display:flex;justify-content:flex-end;padding:16px 24px}.close-footer-btn{background:#6c757d;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 24px;transition:all .2s}.close-footer-btn:hover{background:#5a6268;transform:translateY(-1px)}@media (max-width:768px){.survey-responses-modal{max-height:95vh;max-width:95%}.responses-table{font-size:12px}.responses-table td,.responses-table th{padding:8px 4px}.modal-header h2{font-size:20px}.comment-cell{max-width:150px}.stats-row{gap:16px}}.survey-statistics{margin:0 auto;max-width:1400px;padding:2rem}.survey-header{margin-bottom:3rem;text-align:center}.survey-header h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;color:#2d3748;font-size:2.5rem;margin-bottom:.5rem}.survey-period{color:#718096;font-size:1.1rem;font-weight:500}.stats-section{background:#fff;border-radius:12px;box-shadow:0 4px 6px #00000012;margin-bottom:2rem;padding:2rem}.stats-section h2{border-bottom:3px solid #667eea;color:#2d3748;font-size:1.8rem;margin-bottom:1.5rem;padding-bottom:.75rem}.overall-average{display:flex;justify-content:center;margin-bottom:2rem}.average-card{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 10px 25px #667eea4d;color:#fff;display:flex;flex-direction:column;gap:.5rem;padding:2rem 4rem}.average-label{font-size:1rem;font-weight:500;opacity:.9}.average-value{font-size:3rem;font-weight:700;letter-spacing:-.02em}.webtoon-stats-table{overflow-x:auto}.webtoon-stats-table table{border-collapse:collapse;width:100%}.webtoon-stats-table th{background:#f7fafc;border-bottom:2px solid #e2e8f0;color:#4a5568;font-weight:600;padding:1rem;text-align:left;white-space:nowrap}.webtoon-stats-table td{border-bottom:1px solid #e2e8f0;color:#2d3748;padding:1rem}.webtoon-stats-table tbody tr:hover{background:#f7fafc;transition:background .2s}.webtoon-title{font-weight:500}.webtoon-title-btn{background:none;border:none;color:#667eea;cursor:pointer;font-family:inherit;font-size:inherit;font-weight:500;padding:0;text-align:left;text-decoration:none;transition:all .2s}.webtoon-title-btn:hover{color:#764ba2;text-decoration:underline}.ratio-cell{color:#764ba2;font-weight:600}.ratio-bar-container{background:#e2e8f0;border-radius:12px;height:24px;overflow:hidden;width:100%}.ratio-bar{background:linear-gradient(90deg,#667eea,#764ba2);border-radius:12px;height:100%;transition:width .3s ease}.ab-test-section{background:linear-gradient(180deg,#fff 0,#f7fafc)}.ab-test-description{background:#fff;border-left:4px solid #667eea;border-radius:8px;color:#4a5568;font-size:1.1rem;margin-bottom:2rem;padding:1rem;text-align:center}.ab-test-cards{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:2rem}.ab-card{background:#fff;border:2px solid #0000;border-radius:12px;box-shadow:0 4px 12px #00000014;padding:1.5rem;transition:all .3s}.ab-card:hover{box-shadow:0 8px 20px #0000001f;transform:translateY(-4px)}.ab-card.group-a{border-color:#667eea}.ab-card.group-b{border-color:#9f7aea}.ab-card-header{align-items:center;border-bottom:2px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.ab-card-header h3{color:#2d3748;font-size:1.5rem;margin:0}.ab-badge{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;color:#fff;font-size:.9rem;font-weight:500;padding:.4rem 1rem}.ab-card-body{display:flex;flex-direction:column;gap:1rem}.ab-stat{align-items:center;background:#f7fafc;border-radius:8px;display:flex;justify-content:space-between;padding:.75rem}.ab-stat.highlight{background:linear-gradient(135deg,#667eea1a,#764ba21a);border:2px solid #667eea}.ab-stat-label{color:#4a5568;font-weight:500}.ab-stat-value{color:#2d3748;font-size:1.5rem;font-weight:700}.ab-stat.highlight .ab-stat-value{color:#667eea;font-size:1.8rem}.ab-comparison{margin-top:2rem}.comparison-chart{background:#fff;border-radius:12px;padding:2rem}.chart-bar-wrapper,.comparison-chart{margin-bottom:1.5rem}.chart-label{color:#4a5568;font-size:1rem;font-weight:600;margin-bottom:.5rem}.chart-bar-bg{background:#e2e8f0;border-radius:8px;height:50px;overflow:hidden;position:relative}.chart-bar{align-items:center;display:flex;height:100%;padding:0 1rem;position:relative;transition:width .5s ease}.group-a-bar{background:linear-gradient(90deg,#667eea,#764ba2)}.group-b-bar{background:linear-gradient(90deg,#9f7aea,#b794f4)}.chart-bar-label{color:#fff;font-size:1.2rem;font-weight:700;text-shadow:0 1px 3px #0000004d}.comparison-result{display:flex;justify-content:center}.result-card{background:#fff;border:2px solid #48bb78;border-radius:12px;max-width:600px;padding:2rem;text-align:center}.result-card h4{color:#2d3748;font-size:1.3rem;margin-bottom:1rem}.result-main{color:#4a5568;font-size:1.2rem;line-height:1.6;margin-bottom:1rem}.improvement-value{color:#48bb78;font-size:1.4rem;font-weight:700}.result-interpretation{border-top:1px solid #e2e8f0;color:#718096;font-size:1rem;font-style:italic;padding-top:1rem}@media (max-width:768px){.survey-statistics{padding:1rem}.survey-header h1{font-size:2rem}.average-card{padding:1.5rem 2rem}.average-value{font-size:2.5rem}.stats-section{padding:1.5rem}.webtoon-stats-table{font-size:.9rem}.ab-test-cards{grid-template-columns:1fr}.chart-bar-label{font-size:1rem}}.admin-dashboard{background:#f5f5f5;display:flex;height:100vh}.admin-sidebar{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:4px 0 20px #0000001a;display:flex;flex-direction:column;width:260px}.admin-logo{border-bottom:1px solid #ffffff1a;padding:24px}.admin-logo h2{color:#fff;font-size:24px;font-weight:800;margin:0}.admin-nav{display:flex;flex:1 1;flex-direction:column;gap:8px;padding:20px}.admin-nav a{border-radius:10px;color:#fffc;display:block;font-size:16px;font-weight:600;padding:14px 20px;text-decoration:none;transition:all .3s ease}.admin-nav a:hover{background:#ffffff1a;color:#fff;transform:translateX(5px)}.admin-nav a.active{background:#fff3;color:#fff}.admin-sidebar-footer{border-top:1px solid #ffffff1a;padding:20px}.logout-btn{background:#ffffff1a;border:2px solid #ffffff4d;border-radius:10px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px;transition:all .3s ease;width:100%}.logout-btn:hover{background:#fff3;border-color:#fff}.admin-main{display:flex;flex:1 1;flex-direction:column;overflow:hidden}.admin-header{align-items:center;background:#fff;border-bottom:1px solid #e0e0e0;box-shadow:0 2px 10px #0000000d;display:flex;justify-content:space-between;padding:20px 32px}.admin-header h1{color:#1a1a2e;font-size:24px;font-weight:700;margin:0}.admin-header-actions{display:flex;gap:12px}.refresh-btn,.view-site-btn{background:#fff;border:2px solid #e0e0e0;border-radius:8px;color:#666;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:all .3s ease}.refresh-btn:hover,.view-site-btn:hover{border-color:#667eea;box-shadow:0 4px 12px #667eea33;color:#667eea;transform:translateY(-2px)}.admin-content{flex:1 1;overflow-y:auto;padding:32px}.admin-loading{align-items:center;display:flex;flex-direction:column;gap:20px;height:100vh;justify-content:center}.spinner{animation:spin 1s linear infinite;border:4px solid #f0f0f0;border-radius:50%;border-top-color:#667eea;height:50px;width:50px}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:768px){.admin-dashboard{flex-direction:column}.admin-sidebar{height:auto;width:100%}.admin-nav{flex-direction:row;overflow-x:auto;padding:10px}.admin-nav a{white-space:nowrap}.admin-content{padding:20px}}.header{background-color:#fff;border-bottom:1px solid #e0e0e0;position:-webkit-sticky;position:sticky;top:0;transition:background-color .3s ease;z-index:1000}.dark .header{background-color:#1a1a1a;border-bottom-color:#333}.header-container{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px;padding:1rem 2rem}.logo{color:#333;text-decoration:none}.logo h1{font-size:1.5rem;font-weight:700;margin:0}.dark .logo{color:#fff}.nav{gap:1rem}.dark-mode-toggle,.nav{align-items:center;display:flex}.dark-mode-toggle{background:none;border:2px solid #333;border-radius:50%;cursor:pointer;font-size:1.2rem;height:40px;justify-content:center;transition:all .3s ease;width:40px}.dark .dark-mode-toggle{border-color:#fff}.dark-mode-toggle:hover{transform:scale(1.1)}@media (max-width:768px){.header-container{padding:1rem}.logo h1{font-size:1.2rem}}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;transition:background-color .3s ease,color .3s ease}body.dark-mode{background-color:#0f0f0f;color:#e0e0e0}.App{display:flex;flex-direction:column;min-height:100vh;width:100%}.App.dark{background-color:#0f0f0f}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#f1f1f1}.dark ::-webkit-scrollbar-track{background:#1a1a1a}::-webkit-scrollbar-thumb{background:#888;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.dark ::-webkit-scrollbar-thumb{background:#444}.dark ::-webkit-scrollbar-thumb:hover{background:#666}
/*# sourceMappingURL=main.48244f94.css.map*/