:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;color:#1a1a1a;background-color:#f0f2f5;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}h1,h2,h3,h4,h5,h6{margin:0}button,input,textarea{font-family:inherit}.chat-window{display:flex;flex-direction:column;height:100%;background:#f8f9fa;border-radius:8px;overflow:hidden}.chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.chat-empty{color:#6c757d;text-align:center;padding:32px;font-style:italic}.chat-message{max-width:85%;padding:12px 16px;border-radius:12px;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-message-user{align-self:flex-end;background:#007bff;color:#fff}.chat-message-assistant{align-self:flex-start;background:#fff;border:1px solid #dee2e6}.chat-message-role{font-size:11px;font-weight:600;text-transform:uppercase;margin-bottom:4px;opacity:.7}.chat-message-content{font-size:14px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.chat-typing{display:flex;gap:4px;padding:4px 0}.typing-dot{width:8px;height:8px;background:#6c757d;border-radius:50%;animation:bounce 1.4s infinite ease-in-out both}.typing-dot:nth-child(1){animation-delay:-.32s}.typing-dot:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.chat-input-form{display:flex;gap:8px;padding:16px;background:#fff;border-top:1px solid #dee2e6;align-items:flex-end}.chat-input{flex:1;padding:12px 16px;border:1px solid #dee2e6;border-radius:16px;font-size:14px;font-family:inherit;line-height:1.4;outline:none;transition:border-color .2s;resize:none;min-height:44px;max-height:150px;overflow-y:auto}.chat-input:focus{border-color:#007bff}.chat-input:disabled{background:#f8f9fa}.chat-send-button{padding:12px 24px;background:#007bff;color:#fff;border:none;border-radius:24px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.chat-send-button:hover:not(:disabled){background:#0056b3}.chat-send-button:disabled{background:#6c757d;cursor:not-allowed}.review-panel{background:#fff;border-radius:8px;padding:20px;box-shadow:0 2px 8px #0000001a;overflow-y:auto;max-height:100%}.review-panel.outline-validation{background:#f8f9fa;border:1px solid #dee2e6}.review-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.review-header h3{margin:0;font-size:18px;color:#333}.close-button{background:none;border:none;font-size:24px;color:#6c757d;cursor:pointer;padding:0 8px}.close-button:hover{color:#333}.overall-score{text-align:center;margin-bottom:20px}.score-number{font-size:48px;font-weight:700;color:#007bff}.overall-score .score-label{font-size:18px;color:#6c757d}.assessment{background:#e9ecef;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px;line-height:1.5;color:#495057}.scores-grid{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.score-item{display:flex;align-items:center;gap:12px}.score-item .score-label{width:100px;font-size:13px;color:#495057}.score-bar-container{flex:1;height:8px;background:#e9ecef;border-radius:4px;overflow:hidden}.score-bar{height:100%;border-radius:4px;transition:width .3s ease}.score-value{width:36px;text-align:right;font-size:13px;font-weight:600;color:#333}.review-section{margin-bottom:20px}.review-section h4{font-size:14px;font-weight:600;color:#333;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid #dee2e6}.review-section ul{margin:0;padding-left:20px}.review-section li{font-size:13px;line-height:1.5;color:#495057;margin-bottom:8px}.issues-list{display:flex;flex-direction:column;gap:12px}.issue{padding:12px;border-radius:8px;border-left:4px solid}.issue-minor{background:#fff3cd;border-color:#ffc107}.issue-moderate{background:#ffe5d0;border-color:#fd7e14}.issue-major{background:#f8d7da;border-color:#dc3545}.issue-header{display:flex;justify-content:space-between;margin-bottom:8px}.issue-type{font-size:12px;font-weight:600;text-transform:uppercase;color:#495057}.issue-severity{font-size:11px;padding:2px 8px;border-radius:12px;font-weight:600;text-transform:uppercase}.issue-minor .issue-severity{background:#ffc107;color:#000}.issue-moderate .issue-severity{background:#fd7e14;color:#fff}.issue-major .issue-severity{background:#dc3545;color:#fff}.issue-location{font-size:12px;color:#6c757d;margin-bottom:8px}.issue-description{font-size:13px;color:#333;margin-bottom:8px}.issue-suggestion{font-size:12px;color:#495057}.brainstorm-pane{display:flex;height:100%;gap:20px;position:relative;overflow:hidden}.brainstorm-main{flex:1;display:flex;gap:20px;min-width:0}.outline-section,.chat-section{flex:1;display:flex;flex-direction:column;min-width:0}.header-buttons{display:flex;gap:8px}.generate-button{padding:8px 16px;background:#28a745;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.generate-button:hover:not(:disabled){background:#218838}.generate-button:disabled{background:#6c757d;cursor:not-allowed}.outline-editor{flex:1;padding:16px;border:1px solid #dee2e6;border-radius:8px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:13px;line-height:1.6;resize:none;outline:none;transition:border-color .2s}.outline-editor:focus{border-color:#007bff}.outline-editor::placeholder{color:#adb5bd}.validation-sidebar{width:300px;flex-shrink:0;max-height:100%;overflow-y:auto}.show-validation-button{position:absolute;top:80px;right:20px;padding:8px 16px;background:#007bff;color:#fff;border:none;border-radius:20px;font-size:13px;cursor:pointer;box-shadow:0 2px 8px #00000026;transition:background .2s}.show-validation-button:hover{background:#0056b3}.validation-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}.validation-loading .loading-spinner{width:40px;height:40px;border:3px solid #e9ecef;border-top-color:#6f42c1;border-radius:50%;animation:spin 1s linear infinite}.validation-loading p{margin-top:16px;color:#6c757d;font-size:14px}.writing-pane{display:flex;height:100%;gap:20px;position:relative;overflow:hidden}.writing-main{flex:1;display:flex;gap:20px;min-width:0}.editor-section{flex:2;display:flex;flex-direction:column;min-width:0}.chat-section{flex:1;display:flex;flex-direction:column;min-width:300px}.header-left{display:flex;align-items:center;gap:16px}.back-button{padding:6px 12px;background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;font-size:13px;color:#495057;cursor:pointer;transition:all .2s}.back-button:hover{background:#e9ecef;color:#333}.review-button{padding:8px 16px;background:#6f42c1;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.review-button:hover:not(:disabled){background:#5a32a3}.review-button:disabled{background:#6c757d;cursor:not-allowed}.editor-content .tiptap:focus{border-color:#007bff}.editor-content .tiptap h1{font-size:28px;font-weight:700;margin:0 0 .5em;color:#1a1a1a}.editor-content .tiptap h2{font-size:22px;font-weight:600;margin:1.5em 0 .5em;color:#1a1a1a}.editor-content .tiptap h3{font-size:18px;font-weight:600;margin:1.2em 0 .4em;color:#333}.editor-content .tiptap ul,.editor-content .tiptap ol{padding-left:24px;margin:0 0 1em}.editor-content .tiptap li{margin-bottom:.3em}.editor-content .tiptap strong{font-weight:600}.editor-content .tiptap em{font-style:italic}.generation-info-button{position:absolute;bottom:20px;right:20px;padding:12px 20px;background:#6f42c1;color:#fff;border:none;border-radius:24px;font-size:13px;font-weight:500;cursor:pointer;box-shadow:0 2px 12px #6f42c14d;transition:all .2s}.generation-info-button:hover{background:#5a32a3;box-shadow:0 4px 16px #6f42c166;transform:translateY(-1px)}.validate-pane{display:flex;height:100%;gap:20px;position:relative;overflow:hidden}.validate-main{flex:1;display:flex;min-width:0}.validate-editor-section{flex:1;display:flex;flex-direction:column;min-width:0}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-header h2{margin:0;font-size:16px;font-weight:600;color:#333}.validate-button{padding:8px 16px;background:#6f42c1;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.validate-button:hover:not(:disabled){background:#5a32a3}.validate-button:disabled{background:#6c757d;cursor:not-allowed}.editor-toolbar{display:flex;gap:4px;padding:8px;background:#f8f9fa;border:1px solid #dee2e6;border-bottom:none;border-radius:8px 8px 0 0}.editor-toolbar button{padding:6px 12px;background:#fff;border:1px solid #dee2e6;border-radius:4px;font-size:13px;font-weight:600;color:#495057;cursor:pointer;transition:all .2s}.editor-toolbar button:hover{background:#e9ecef}.editor-toolbar button.active{background:#007bff;color:#fff;border-color:#007bff}.editor-content{flex:1;border:1px solid #dee2e6;border-radius:0 0 8px 8px;overflow:auto}.editor-content .tiptap{height:100%;padding:16px 20px;font-size:15px;line-height:1.7;outline:none}.editor-content .tiptap p{margin:0 0 1em}.editor-content .tiptap h1{font-size:28px;font-weight:700;margin:0 0 .5em}.editor-content .tiptap h2{font-size:22px;font-weight:600;margin:1.5em 0 .5em}.editor-content .tiptap h3{font-size:18px;font-weight:600;margin:1.2em 0 .4em}.editor-content .tiptap p.is-editor-empty:first-child:before{color:#adb5bd;content:attr(data-placeholder);float:left;height:0;pointer-events:none}.review-sidebar{width:350px;flex-shrink:0;max-height:100%;overflow-y:auto}.review-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}.loading-spinner{width:40px;height:40px;border:3px solid #e9ecef;border-top-color:#6f42c1;border-radius:50%;animation:spin 1s linear infinite}.review-loading p{margin-top:16px;color:#6c757d;font-size:14px}.show-review-button{position:absolute;bottom:20px;right:20px;padding:12px 20px;background:#6f42c1;color:#fff;border:none;border-radius:24px;font-size:13px;font-weight:500;cursor:pointer;box-shadow:0 2px 12px #6f42c14d;transition:all .2s}.show-review-button:hover{background:#5a32a3;box-shadow:0 4px 16px #6f42c166;transform:translateY(-1px)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem}.login-container{background:#fff;border-radius:1rem;padding:2.5rem;box-shadow:0 25px 50px -12px #00000040;max-width:400px;width:100%}.login-header{text-align:center;margin-bottom:2rem}.login-header h1{font-size:1.75rem;font-weight:700;color:#1f2937;margin:0 0 .5rem}.login-header p{color:#6b7280;margin:0}.login-error{background-color:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;padding:.75rem 1rem;margin-bottom:1.5rem;color:#dc2626;font-size:.875rem;text-align:center}.login-buttons{display:flex;flex-direction:column;gap:1rem}.login-button{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.875rem 1.5rem;border:1px solid #e5e7eb;border-radius:.5rem;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease;background:#fff;color:#374151}.login-button:hover:not(:disabled){background-color:#f9fafb;border-color:#d1d5db}.login-button:disabled{opacity:.6;cursor:not-allowed}.login-button.google:hover:not(:disabled){border-color:#4285f4;background-color:#f8faff}.login-button.microsoft:hover:not(:disabled){border-color:#00a4ef;background-color:#f0f9ff}.login-icon{width:1.25rem;height:1.25rem;flex-shrink:0}.login-footer{margin-top:2rem;text-align:center}.login-footer p{color:#9ca3af;font-size:.875rem;margin:0}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background:#f0f2f5}#root{height:100vh}.app{display:flex;flex-direction:column;height:100%}.app-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:#fff;border-bottom:1px solid #dee2e6;box-shadow:0 1px 3px #0000000d}.app-header h1{margin:0;font-size:20px;font-weight:600;color:#1a1a1a}.mode-selector{display:flex;gap:4px;padding:4px;background:#f0f2f5;border-radius:8px}.mode-button{padding:8px 16px;border:none;border-radius:6px;font-size:13px;font-weight:500;color:#6c757d;background:transparent;cursor:pointer;transition:all .2s}.mode-button:hover{color:#495057}.mode-button.active{color:#1a1a1a;background:#fff;box-shadow:0 1px 3px #0000001a}.phase-indicator{display:flex;align-items:center;gap:12px}.phase-step{padding:6px 16px;border-radius:20px;font-size:13px;font-weight:500;color:#6c757d;background:#f8f9fa;transition:all .2s}.phase-step.active{color:#fff;background:#007bff}.phase-step.completed{color:#28a745;background:#d4edda}.phase-arrow{color:#adb5bd;font-size:16px}.app-main{flex:1;padding:20px;overflow:hidden}.generating-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.generating-modal{background:#fff;padding:40px 60px;border-radius:16px;text-align:center;box-shadow:0 10px 40px #0003}.generating-modal h2{margin:20px 0 10px;font-size:24px;color:#1a1a1a}.generating-modal p{margin:0;color:#6c757d;font-size:14px}.generating-spinner{width:48px;height:48px;margin:0 auto;border:4px solid #e9ecef;border-top-color:#007bff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-screen{display:flex;align-items:center;justify-content:center;background:#f0f2f5}.loading-spinner{width:48px;height:48px;border:4px solid #e9ecef;border-top-color:#007bff;border-radius:50%;animation:spin 1s linear infinite}.header-left{display:flex;align-items:center}.header-user{display:flex;align-items:center;gap:12px}.user-email{font-size:13px;color:#6c757d}.logout-button{padding:6px 12px;border:1px solid #dee2e6;border-radius:6px;font-size:13px;font-weight:500;color:#6c757d;background:#fff;cursor:pointer;transition:all .2s}.logout-button:hover{color:#dc3545;border-color:#dc3545;background:#fff5f5}
