:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;padding:0;min-width:320px;min-height:100vh}#root{margin:0;padding:0;width:100%;height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.glassy-button{background:#fff3;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(135,206,235,.3);border-radius:50px;padding:18px 36px;color:#fffffff2;font-size:18px;font-weight:500;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 8px 32px #1e3a3a26,inset 0 1px #fff6,inset 0 -1px #87ceeb33;position:relative;overflow:hidden}.glassy-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.glassy-button:hover:before{left:100%}.glassy-button:hover{background:#fff3;transform:translateY(-2px);box-shadow:0 12px 40px #00000026,inset 0 1px #fff6,inset 0 -1px #fff3}.glassy-button:active{transform:translateY(0);box-shadow:0 4px 16px #0003,inset 0 1px #fff3,inset 0 -1px #ffffff1a}.glassy-button:focus,.glassy-button:focus-visible{outline:none}.glassy-button[data-color=red]{background:#dc262666;border-color:#b91c1c99;color:#fffffff2;box-shadow:0 8px 32px #dc262633,inset 0 1px #ffffff4d,inset 0 -1px #b91c1c4d}.glassy-button[data-color=red]:hover{background:#dc262680;border-color:#b91c1cb3;box-shadow:0 12px 40px #dc26264d,inset 0 1px #fff6,inset 0 -1px #b91c1c66}.glassy-button[data-color=white]{background:#ffffff26;border-color:#fff3}.glassy-button[data-color=white]:hover{background:#ffffff40}body{margin:0;padding:0;overflow:hidden;height:100vh;width:100vw}.speech-recorder{height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#87ceeb,#4682b4 30%,#2f4f4f 70%,#1e3a3a);padding:20px;margin:0;overflow:hidden}.speech-recorder button:focus,.speech-recorder button:active,.speech-recorder button:focus-visible{outline:none!important}.container{background:#ffffff26;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:32px;padding:80px 60px;border:1px solid rgba(255,255,255,.25);box-shadow:0 8px 32px #1e3a3a33;display:flex;flex-direction:column;align-items:center;max-height:calc(100vh - 40px);overflow:hidden;gap:40px;transition:all .3s ease}.speech-circle{width:250px;height:250px;border-radius:50%;background:#fff3;border:2px solid rgba(135,206,235,.4);display:flex;align-items:center;justify-content:center;position:relative;transition:all .3s ease}.speech-circle.recording{animation:pulse 2s infinite;box-shadow:0 0 40px #4682b466}.inner-circle{width:150px;height:150px;border-radius:50%;background:#ffffff40;display:flex;align-items:center;justify-content:center;border:1px solid rgba(135,206,235,.5)}.mic-icon{display:flex;align-items:center;justify-content:center;opacity:.8;transition:all .3s ease}.mic-icon svg{width:48px;height:48px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.recording-controls{display:flex;align-items:center;justify-content:center;position:relative;width:400px;height:80px}.record-button{margin-left:0;transition:all .5s cubic-bezier(.4,0,.2,1);z-index:2}.recording-controls.recording .record-button{margin-left:-130px}.timer{font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:18px;font-weight:600;color:#fffffff2;background:#fff3;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:16px 24px;border-radius:50px;border:1px solid rgba(135,206,235,.3);box-shadow:0 8px 32px #1e3a3a26,inset 0 1px #fff6,inset 0 -1px #87ceeb33;position:absolute;margin-left:130px;opacity:0;transform:translate(30px);transition:all .5s cubic-bezier(.4,0,.2,1)}.timer.visible{opacity:1;transform:translate(0)}.instruction-text{color:#fffc;font-size:16px;margin:0;text-align:center;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;transition:all .3s ease}.generate-uml-container{position:relative;width:300px;height:60px;border:1px solid rgba(135,206,235,.3);border-radius:50px;background:#ffffff26;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:1;color:#fffffff2;box-shadow:0 8px 32px #1e3a3a26,inset 0 1px #fff6,inset 0 -1px #87ceeb33;transition:all .3s ease;cursor:pointer;opacity:0;transform:translateY(20px);animation:slideInUp .5s ease forwards}.generate-uml-container:hover{transform:translateY(-2px);box-shadow:0 12px 40px #1e3a3a40,inset 0 1px #ffffff80,inset 0 -1px #4682b44d}.generate-uml-container:focus{outline:none}.generate-uml-container:active{outline:none}.circle-button{display:flex;align-items:center;justify-content:center;cursor:pointer;position:absolute;width:60px;height:60px;border-radius:50px;background:#4682b4cc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(135,206,235,.3);left:0;top:-2px;z-index:2;transition:.4s cubic-bezier(1,0,.8,1);box-shadow:0 4px 16px #1e3a3a33,inset 0 1px #ffffff4d}.generate-uml-container:hover .circle-button{width:300px;background:#4682b4e6;box-shadow:0 8px 24px #1e3a3a4d,inset 0 1px #fff6}.circle-arrow{position:absolute;width:13px;height:13px;border-top:3px solid rgba(255,255,255,.95);border-right:3px solid rgba(255,255,255,.95);transform:rotate(45deg);top:23px;left:17px;transition:.5s;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.generate-uml-container:hover .circle-arrow{left:50px}.circle-arrow:before{content:"";position:absolute;width:27px;height:3px;background:#fffffff2;transform:rotate(-45deg);top:6.5px;left:-9px;opacity:0;transition:.5s;filter:drop-shadow(0 1px 2px rgba(0,0,0,.1))}.generate-uml-container:hover .circle-arrow:before{opacity:1}.button-text{position:absolute;top:-20px;left:70px;font-size:16px;font-weight:500;line-height:100px;color:#fffffff2;z-index:3;transition:.5s;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;text-shadow:0 2px 4px rgba(0,0,0,.1)}.generate-uml-container:hover .button-text{left:80px;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.2)}.summary-toggle{position:fixed;top:30px;right:30px;display:flex;align-items:center;gap:8px;padding:12px 18px;background:#ffffff26;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(135,206,235,.3);border-radius:50px;color:#fffffff2;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:0 8px 32px #1e3a3a26,inset 0 1px #fff6,inset 0 -1px #87ceeb33;z-index:1000;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.summary-toggle:hover{transform:translateY(-2px);background:#fff3;box-shadow:0 12px 40px #1e3a3a40,inset 0 1px #ffffff80,inset 0 -1px #4682b44d}.summary-toggle:focus{outline:none}.summary-toggle:active{outline:none}.summary-toggle svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.1))}.summary-container{position:fixed;top:90px;right:30px;width:500px;max-height:calc(100vh - 125px);display:flex;flex-direction:column;background:#ffffff26;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(135,206,235,.3);border-radius:24px;box-shadow:0 20px 60px #1e3a3a33,inset 0 1px #fff6,inset 0 -1px #87ceeb33;z-index:999;animation:summarySlideIn .4s cubic-bezier(.4,0,.2,1) forwards;opacity:0;transform:translateY(-20px) scale(.95)}.summary-header{display:flex;justify-content:space-between;align-items:center;padding:24px 28px 20px;border-bottom:1px solid rgba(135,206,235,.25)}.summary-header h3{margin:0;color:#fffffffa;font-size:20px;font-weight:700;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;text-shadow:0 2px 8px rgba(0,0,0,.3);letter-spacing:.3px}.summary-close{background:none;border:none;color:#ffffffb3;cursor:pointer;padding:4px;border-radius:50%;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.summary-close:hover{background:#ffffff1a;color:#fff}.summary-close:focus{outline:none}.summary-close:active{outline:none}.summary-content{overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:rgba(135,206,235,.5) rgba(255,255,255,.1)}.summary-content::-webkit-scrollbar{width:6px}.summary-content::-webkit-scrollbar-track{background-color:#ffffff1a;border-radius:10px}.summary-content::-webkit-scrollbar-thumb{background:#87ceeb80;border-radius:10px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.2)}.summary-content::-webkit-scrollbar-thumb:hover{background:#87ceebb3}.summary-item{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;gap:16px;min-height:20px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.08)}.summary-item:last-child{margin-bottom:0;border-bottom:none}.summary-label{color:#ffffffbf;font-size:14px;font-weight:600;flex-shrink:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;text-transform:uppercase;letter-spacing:.5px;min-width:80px}.summary-value{color:#fffffffa;font-size:14px;font-weight:500;text-align:left;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;flex:1;line-height:1.5;word-wrap:break-word;text-shadow:0 1px 2px rgba(0,0,0,.2)}.summary-value.formatted-summary{background:#ffffff0d;border-radius:8px;padding:12px;margin-top:8px;text-align:left;width:100%}.formatted-summary-content{text-align:left;width:100%}.summary-section{margin-bottom:18px;padding:12px;background:#ffffff08;border-radius:8px;border-left:3px solid rgba(135,206,235,.4);text-align:left;max-height:150px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(135,206,235,.3) rgba(255,255,255,.05)}.summary-section::-webkit-scrollbar{width:4px}.summary-section::-webkit-scrollbar-track{background-color:#ffffff0d;border-radius:8px}.summary-section::-webkit-scrollbar-thumb{background:#87ceeb4d;border-radius:8px}.summary-section::-webkit-scrollbar-thumb:hover{background:#87ceeb80}.summary-section-header{font-weight:600;font-size:14px;color:#fffffff2;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid rgba(135,206,235,.2);text-align:left;text-transform:capitalize}.summary-content{margin-top:8px;text-align:left;padding:15px}.summary-bullets-container{margin-top:8px;text-align:left;padding:0}.summary-bullet{color:#ffffffe6;font-size:13px;line-height:1.6;margin:6px 0;text-align:left;padding:3px 0 3px 8px}.loading-skeleton{background:linear-gradient(90deg,#ffffff1a 25%,#fff3,#ffffff1a 75%);background-size:200% 100%;border-radius:12px;animation:skeleton-loading 1.5s infinite;position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.15);box-shadow:inset 2px 2px 4px #0000001a,inset -2px -2px 4px #ffffff1a,0 4px 8px #1e3a3a1a}.loading-skeleton:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:skeleton-shimmer 2s infinite}.summary-skeleton-container{display:flex;flex-direction:column;gap:8px;width:100%}@keyframes slideInUp{to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%{transform:scale(1);box-shadow:0 0 #87ceeb80}70%{transform:scale(1.05);box-shadow:0 0 0 20px #4682b400}to{transform:scale(1);box-shadow:0 0 #87ceeb00}}@keyframes summarySlideIn{to{opacity:1;transform:translateY(0) scale(1)}}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes skeleton-shimmer{0%{left:-100%}to{left:100%}}.plantuml-display{height:100vh;display:flex;background:linear-gradient(135deg,#87ceeb,#4682b4 30%,#2f4f4f 70%,#1e3a3a);padding:20px;margin:0;overflow:hidden;position:relative}.plantuml-display button:focus,.plantuml-display button:active,.plantuml-display button:focus-visible{outline:none!important}.action-buttons-container{position:fixed;top:30px;left:30px;right:30px;display:flex;justify-content:space-between;align-items:center;z-index:1000;pointer-events:none}.action-buttons-container>*{pointer-events:auto}.right-buttons{display:flex;align-items:center;gap:12px}.back-button{display:flex;align-items:center;gap:8px;padding:12px 18px;background:#ffffff26;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(135,206,235,.3);border-radius:50px;color:#fffffff2;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:0 8px 32px #1e3a3a26,inset 0 1px #fff6,inset 0 -1px #87ceeb33;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.back-button:hover{transform:translateY(-2px);background:#fff3;box-shadow:0 12px 40px #1e3a3a40,inset 0 1px #ffffff80,inset 0 -1px #87ceeb4d}.retry-button{display:flex;align-items:center;gap:8px;padding:12px 18px;background:#ffffff26;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(135,206,235,.3);border-radius:50px;color:#fffffff2;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:0 8px 32px #1e3a3a26,inset 0 1px #fff6,inset 0 -1px #87ceeb33;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.retry-button:hover:not(:disabled){transform:translateY(-2px);background:#fff3;box-shadow:0 12px 40px #1e3a3a40,inset 0 1px #ffffff80,inset 0 -1px #87ceeb4d}.retry-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.retry-button .spinning{animation:spin 1s linear infinite}.back-button:focus,.back-button:active{outline:none}.back-button svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.1))}.plantuml-container{width:100%;height:100%;display:flex;align-items:flex-start;justify-content:center;margin-top:130px;padding-top:20px}.panels-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr;gap:20px;width:90%;max-width:1400px;height:calc(85% - 100px);max-height:calc(100vh - 140px)}.generate-code-section{grid-column:2;grid-row:1;display:flex;align-items:flex-start;justify-content:flex-start}.generate-code-container{background:#ffffff26;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:24px;padding:30px;border:1px solid rgba(255,255,255,.25);box-shadow:0 8px 32px #1e3a3a33;display:flex;flex-direction:column;align-items:center;gap:20px;width:100%}.panel-title{color:#fffffffa;font-size:24px;font-weight:700;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;text-shadow:0 2px 8px rgba(0,0,0,.3);letter-spacing:.3px}.generate-code-button{display:flex;align-items:center;gap:8px;padding:12px 18px;background:#ffffff26;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(135,206,235,.3);border-radius:50px;color:#fffffff2;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:0 8px 32px #1e3a3a26,inset 0 1px #fff6,inset 0 -1px #87ceeb33;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.generate-code-button:hover{transform:translateY(-2px);background:#fff3;box-shadow:0 12px 40px #1e3a3a40,inset 0 1px #ffffff80,inset 0 -1px #4682b44d}.generate-code-button:focus{outline:none}.generate-code-button:active{outline:none}.generate-code-button svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.1))}.pdf-svg-section{grid-column:1;grid-row:1 / 3;display:flex}.pdf-svg-container{background:#ffffff26;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:24px;border:1px solid rgba(255,255,255,.25);box-shadow:0 8px 32px #1e3a3a33;display:flex;flex-direction:column;width:100%;height:100%}.pdf-svg-content{flex:1;padding:20px;display:flex;align-items:center;justify-content:center;overflow:hidden}.svg-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;width:90%;height:90%;background:#ffffff0d;border-radius:16px;border:2px dashed rgba(255,255,255,.2);padding:40px}.diagram-preview{max-width:100;max-height:200;object-fit:contain;opacity:.7;filter:brightness(1.2)}.placeholder-text{color:#fff9;font-size:14px;font-weight:500;text-align:center;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.plantuml-code-section{grid-column:2;grid-row:2}.plantuml-code-container{background:#ffffff26;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:24px;border:1px solid rgba(255,255,255,.25);box-shadow:0 8px 32px #1e3a3a33;display:flex;flex-direction:column;width:100%;height:100%}.panel-header{padding:24px 28px 20px;border-bottom:1px solid rgba(135,206,235,.25);display:flex;justify-content:space-between;align-items:center}.panel-header h3{margin:0;color:#fffffffa;font-size:20px;font-weight:700;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;text-shadow:0 2px 8px rgba(0,0,0,.3);letter-spacing:.3px}.code-actions{display:flex;gap:8px}.edit-button,.save-button,.cancel-button{display:flex;align-items:center;gap:6px;padding:8px 12px;background:#ffffff26;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(135,206,235,.3);border-radius:20px;color:#fffffff2;font-size:12px;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 16px #1e3a3a1a,inset 0 1px #ffffff4d,inset 0 -1px #87ceeb33;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.edit-button:hover:not(:disabled),.save-button:hover:not(:disabled),.cancel-button:hover:not(:disabled){transform:translateY(-1px);background:#fff3;box-shadow:0 6px 20px #1e3a3a26,inset 0 1px #fff6,inset 0 -1px #87ceeb4d}.save-button{background:#2ea04333;border-color:#2ea04366}.save-button:hover:not(:disabled){background:#2ea0434d;border-color:#2ea04380}.cancel-button{background:#dc354533;border-color:#dc354566}.cancel-button:hover:not(:disabled){background:#dc35454d;border-color:#dc354580}.edit-button:disabled,.save-button:disabled,.cancel-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.edit-actions{display:flex;gap:8px}.code-textarea{min-height:340px;background:#00000040;border:2px solid rgba(135,206,235,.2);border-radius:24px 0 0 24px;padding:24px;color:#fffffff2;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:13px;line-height:1.6;outline:none;resize:none;transition:border-color .3s ease,box-shadow .3s ease;scrollbar-width:thin;scrollbar-color:rgba(135,206,235,.4) rgba(255,255,255,.05);width:92%}.code-textarea::-webkit-scrollbar{width:8px;height:8px}.code-textarea::-webkit-scrollbar-track{background-color:#ffffff0d;border-radius:8px}.code-textarea::-webkit-scrollbar-thumb{background:#87ceeb66;border-radius:8px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.1)}.code-textarea::-webkit-scrollbar-thumb:hover{background:#87ceeb99}.code-textarea:focus{border-color:#87ceeb99;box-shadow:0 0 0 3px #87ceeb26,inset 0 0 30px #87ceeb14}.code-textarea.has-changes{border-color:#ffc10799;box-shadow:0 0 0 3px #ffc10726,inset 0 0 30px #ffc10714}.code-textarea::placeholder{color:#fff6}.changes-indicator{padding:12px 20px;background:#ffc10726;border:1px solid rgba(255,193,7,.3);border-radius:8px;margin:0 20px 20px;display:flex;align-items:center;justify-content:center}.changes-indicator span{color:#ffc107e6;font-size:13px;font-weight:500;display:flex;align-items:center;gap:8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.code-editor{flex:1;padding:10px;overflow:hidden;display:flex;flex-direction:column}.code-content{margin:0;background:#0003;border-radius:12px;padding:20px;border:1px solid rgba(255,255,255,.1);max-height:400px;overflow-y:auto;overflow-x:auto;scrollbar-width:thin;scrollbar-color:rgba(116,156,171,.5) rgba(255,255,255,.1);width:92%}.code-content::-webkit-scrollbar{width:8px;height:8px}.code-content::-webkit-scrollbar-track{background-color:#ffffff0d;border-radius:8px}.code-content::-webkit-scrollbar-thumb{background:#87ceeb66;border-radius:8px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.1)}.code-content::-webkit-scrollbar-thumb:hover{background:#87ceeb99}.code-content code{color:#fffffff2;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:13px;line-height:1.6;white-space:pre-wrap;word-wrap:break-word;text-shadow:0 1px 2px rgba(0,0,0,.3)}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;color:#fffc;padding:24px}.spinner{width:32px;height:32px;border:3px solid rgba(255,255,255,.15);border-top:3px solid rgba(135,206,235,.8);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.loading-spinner p{margin:0;font-size:14px;font-weight:500;text-align:center}.no-diagram{display:flex;align-items:center;justify-content:center;height:300px;color:#fff9;padding:24px}.no-diagram p{margin:0;font-size:16px;text-align:center}.plantuml-display .summary-toggle{position:static;margin:0}.plantuml-display .summary-container{position:fixed;top:80px;right:30px;z-index:1001}@media (max-width: 768px){.plantuml-display .summary-container{top:70px;right:20px}}@media (max-width: 480px){.plantuml-display .summary-container{top:65px;right:15px;left:15px}}@media (max-width: 1200px){.panels-grid{grid-template-columns:1fr;grid-template-rows:auto auto 1fr 1fr;width:95%}.generate-code-section{grid-column:1;grid-row:1}.pdf-svg-section{grid-column:1;grid-row:2}.summary-section{grid-column:1;grid-row:3}.plantuml-code-section{grid-column:1;grid-row:4}}@media (max-width: 768px){.plantuml-display{padding:10px}.panels-grid{gap:15px;width:100%}.panel-title{font-size:20px}.action-buttons-container{left:20px;right:20px;top:20px}.back-button,.retry-button{padding:10px 16px;font-size:13px}.right-buttons{gap:8px}.edit-button,.save-button,.cancel-button{padding:6px 10px;font-size:11px}}@media (max-width: 480px){.action-buttons-container{left:15px;right:15px;top:15px}.back-button,.retry-button{padding:8px 14px;font-size:12px}.right-buttons{gap:6px}.panel-header{padding:16px 20px 12px;flex-direction:column;align-items:flex-start;gap:12px}.code-actions{width:100%;justify-content:flex-end}}.code-popup-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px;animation:popupFadeIn .3s ease-out forwards}.code-popup-container{background:#ffffff26;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:32px;border:1px solid rgba(255,255,255,.25);box-shadow:0 20px 60px #1e3a3a4d,inset 0 1px #fff6,inset 0 -1px #87ceeb33;max-width:90vw;max-height:85vh;width:800px;display:flex;flex-direction:column;animation:popupSlideIn .4s cubic-bezier(.4,0,.2,1) forwards;opacity:0;transform:translateY(30px) scale(.95)}.code-popup-header{display:flex;justify-content:space-between;align-items:center;padding:24px 32px 20px;border-bottom:1px solid rgba(135,206,235,.25)}.language-indicator{display:flex;align-items:center;gap:12px;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:12px 20px;border-radius:50px;border:1px solid rgba(135,206,235,.3);box-shadow:0 8px 24px #1e3a3a26,inset 0 1px #ffffff4d}.language-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#4682b499;border-radius:50%;border:1px solid rgba(135,206,235,.4);color:#fffffff2}.language-name{color:#fffffffa;font-size:16px;font-weight:600;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;text-shadow:0 2px 4px rgba(0,0,0,.2);letter-spacing:.5px}.popup-actions{display:flex;align-items:center;gap:12px}.copy-button,.close-button{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#ffffff26;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(135,206,235,.3);border-radius:50px;color:#fffffff2;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:0 6px 20px #1e3a3a1a,inset 0 1px #ffffff4d;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.copy-button:hover,.close-button:hover{transform:translateY(-2px);background:#fff3;box-shadow:0 10px 30px #1e3a3a33,inset 0 1px #fff6}.copy-button:focus,.close-button:focus,.copy-button:active,.close-button:active{outline:none}.copy-button.copied{background:#22c55e33;border-color:#22c55e66;color:#22c55e;transform:translateY(-2px) scale(1.05);box-shadow:0 12px 32px #22c55e4d,inset 0 1px #fff6,0 0 #22c55e66;animation:copySuccess .3s ease-out,copyPulse 2s ease-out}.copy-button.copied svg{color:#22c55e;filter:drop-shadow(0 2px 4px rgba(34,197,94,.3))}.copy-button svg,.close-button svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.1))}.close-button{padding:10px;min-width:auto}.code-popup-content{flex:1;padding:24px 32px 32px;overflow:hidden;display:flex;flex-direction:column}.generated-code{flex:1;margin:0;padding:24px;background:#0000004d;border-radius:20px;border:1px solid rgba(255,255,255,.1);overflow-y:auto;overflow-x:auto;max-height:500px;scrollbar-width:thin;scrollbar-color:rgba(135,206,235,.5) rgba(255,255,255,.1);box-shadow:inset 0 4px 12px #0003,inset 0 1px #ffffff1a}.generated-code::-webkit-scrollbar{width:8px;height:8px}.generated-code::-webkit-scrollbar-track{background-color:#ffffff1a;border-radius:12px}.generated-code::-webkit-scrollbar-thumb{background:#87ceeb80;border-radius:12px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.2)}.generated-code::-webkit-scrollbar-thumb:hover{background:#87ceebb3}.generated-code code{color:#fffffff2;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:14px;line-height:1.6;white-space:pre-wrap;word-wrap:break-word;text-shadow:0 1px 2px rgba(0,0,0,.2)}@keyframes popupFadeIn{0%{opacity:0}to{opacity:1}}@keyframes popupSlideIn{to{opacity:1;transform:translateY(0) scale(1)}}@keyframes copySuccess{0%{transform:translateY(-2px) scale(1)}50%{transform:translateY(-4px) scale(1.1)}to{transform:translateY(-2px) scale(1.05)}}@keyframes copyPulse{0%{box-shadow:0 12px 32px #22c55e4d,inset 0 1px #fff6,0 0 #22c55e66}70%{box-shadow:0 12px 32px #22c55e4d,inset 0 1px #fff6,0 0 0 10px #22c55e00}to{box-shadow:0 12px 32px #22c55e4d,inset 0 1px #fff6,0 0 #22c55e00}}@media (max-width: 768px){.code-popup-container{width:95vw;max-height:90vh;border-radius:24px}.code-popup-header{padding:20px 24px 16px;flex-direction:column;gap:16px;align-items:stretch}.popup-actions{justify-content:center}.code-popup-content{padding:20px 24px 24px}.generated-code{padding:20px;font-size:13px}.language-indicator{justify-content:center}}@media (max-width: 480px){.code-popup-overlay{padding:10px}.code-popup-container{border-radius:20px}.generated-code code{font-size:12px}}.diagram-tabs-container{position:fixed;top:30px;left:50%;transform:translate(-50%);display:flex;align-items:center;justify-content:center;margin:0;padding:0;z-index:999}.diagram-tabs{display:flex;background:#ffffff26;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.25);border-radius:30px;padding:6px;gap:4px;box-shadow:0 12px 40px #1e3a3a26,inset 0 1px #ffffff4d,inset 0 -1px #87ceeb33;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;position:relative}.diagram-tabs::-webkit-scrollbar{display:none}.diagram-tab{display:flex;align-items:center;padding:14px 24px;border:none;border-radius:25px;background:transparent;color:#ffffffa6;font-size:14px;font-weight:500;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);white-space:nowrap;min-width:fit-content;position:relative;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.diagram-tab:hover{background:#ffffff1a;color:#ffffffd9;transform:translateY(-1px);box-shadow:0 4px 12px #1e3a3a1a}.diagram-tab.active{background:#fffffff2;color:#4682b4e6;font-weight:600;transform:translateY(-2px);box-shadow:0 8px 25px #1e3a3a33,inset 0 1px #fffc,inset 0 -1px #c8c8c84d}.diagram-tab.active .tab-label{color:#4682b4;transform:scale(1.05)}.tab-label{transition:all .3s ease;letter-spacing:.3px}.diagram-tab:focus,.diagram-tab:active{outline:none}.diagram-tab.active:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .6s}.diagram-tab.active:hover:before{left:100%}@media (max-width: 768px){.diagram-tabs-container{top:25px}.diagram-tabs{padding:4px;border-radius:25px}.diagram-tab{padding:12px 18px;font-size:13px}}@media (max-width: 480px){.diagram-tabs-container{top:20px}.diagram-tab{padding:10px 16px}.tab-label{font-size:12px}}.App{margin:0;padding:0;width:100%;height:100vh}
