:root{--bg: #faf6ef;--text: #1f2a44;--text-muted: #5a6480;--accent: #c1552c;--accent-dark: #a9481f;--accent-green: #5c7a5a;--accent-green-dark: #4c674a;--divider: #d8dce3;--divider-strong: #c2c9d6;--surface: #ffffff;--surface-tint: #fbf8f2;--danger: #b3402a;--dev-bg: #f6ecd2;--dev-text: #8a6a1f;--dev-border: #e6d6a6;--font-heading: "Lora", Georgia, "Times New Roman", serif;--font-essay: "PT Serif", Georgia, "Times New Roman", serif;--font-ui: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--shadow-sm: 0 1px 2px rgba(31, 42, 68, .05);--shadow: 0 4px 16px rgba(31, 42, 68, .08);--shadow-lg: 0 16px 40px rgba(31, 42, 68, .14)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-ui);font-size:16px;line-height:1.5;color:var(--text);background-color:var(--bg);background-image:radial-gradient(circle at 1px 1px,rgba(31,42,68,.04) 1px,transparent 0);background-size:21px 21px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,p{margin:0}button{font-family:inherit}.app{min-height:100vh;display:flex;flex-direction:column;max-width:560px;margin:0 auto;padding:0 20px}.app-header{padding:20px 0 0}.logo{font-family:var(--font-heading);font-size:19px;font-weight:600;letter-spacing:-.01em;color:var(--accent)}.progress{margin-top:14px;height:2px;background:var(--divider);border-radius:999px;overflow:hidden}.progress-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .45s ease}.app-main{flex:1;display:flex;flex-direction:column;padding:28px 0 40px}.back-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;font-family:var(--font-ui);font-size:14px;font-weight:500;color:var(--text-muted);background:none;border:none;padding:6px 10px;margin:0 0 16px -10px;border-radius:var(--radius-sm);cursor:pointer;transition:color .15s ease,background-color .15s ease}.back-btn:hover{color:var(--text);background:#1f2a440d}.back-icon{flex-shrink:0}.step{animation:step-in .32s ease both}.step-title{font-family:var(--font-heading);font-size:28px;font-weight:500;line-height:1.22;letter-spacing:-.01em;color:var(--text);margin:0 0 10px}.step-subtitle{font-size:15px;line-height:1.55;color:var(--text-muted);margin:0 0 26px}.eyebrow{display:block;font-family:var(--font-ui);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-dark);margin:0 0 8px}.topic-display{font-family:var(--font-essay);font-size:23px;line-height:1.5;font-weight:400;color:var(--text);margin:0 0 24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-ui);font-size:15px;font-weight:500;line-height:1.2;min-height:46px;padding:12px 20px;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .04s ease;-webkit-tap-highlight-color:transparent}.btn:active{transform:translateY(1px)}.btn:disabled{cursor:not-allowed;transform:none}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-dark)}.btn-primary:disabled{background:var(--divider);color:#9aa3b8}.btn-secondary{background:transparent;color:var(--text);border-color:var(--divider)}.btn-secondary:hover:not(:disabled){border-color:var(--divider-strong);background:#1f2a4408}.btn-block{width:100%}.link-btn{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-ui);font-size:14px;font-weight:500;color:var(--accent-dark);background:none;border:none;padding:4px 6px;border-radius:var(--radius-sm);cursor:pointer;text-decoration:underline;text-underline-offset:3px;transition:color .15s ease,background-color .15s ease}.link-btn:hover{color:var(--accent);background:#c1552c12}.link-btn:disabled{color:var(--text-muted);cursor:wait}.link-danger{color:var(--danger)}.link-danger:hover{color:var(--danger);background:#b3402a12}.actions{margin-top:28px}.field-label{display:block;font-family:var(--font-ui);font-size:13px;font-weight:600;color:var(--text);margin:0 0 8px}.textarea{width:100%;font-family:var(--font-essay);font-size:17px;line-height:1.6;color:var(--text);background:var(--surface);border:1px solid var(--divider);border-radius:var(--radius);padding:14px 16px;resize:vertical;transition:border-color .15s ease,box-shadow .15s ease}.textarea::placeholder{color:#9aa3b8}.textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #c1552c1f}.textarea[aria-invalid=true]{border-color:var(--danger)}.field-error{font-size:13px;color:var(--danger);margin-top:8px}.field-hint{font-size:13px;color:var(--text-muted);margin-top:10px;text-align:center}.field-note{font-size:13px;color:var(--text-muted);margin-top:8px}.input{width:100%;font-family:var(--font-ui);font-size:16px;line-height:1.4;color:var(--text);background:var(--surface);border:1px solid var(--divider);border-radius:var(--radius);padding:12px 16px;transition:border-color .15s ease,box-shadow .15s ease}.input::placeholder{color:#9aa3b8}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #c1552c1f}.input[aria-invalid=true]{border-color:var(--danger)}.input::-webkit-outer-spin-button,.input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.options{display:flex;flex-direction:column;gap:12px}.option{display:flex;flex-direction:column;gap:4px;text-align:left;background:var(--surface);border:1px solid var(--divider);border-radius:var(--radius);padding:16px 18px;cursor:pointer;color:var(--text);transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;-webkit-tap-highlight-color:transparent}.option:hover{border-color:var(--divider-strong)}.option.is-selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:var(--surface-tint)}.option-title{font-size:16px;font-weight:500}.option-desc{font-size:13.5px;line-height:1.45;color:var(--text-muted)}.length-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.length-option{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:var(--surface);border:1px solid var(--divider);border-radius:var(--radius);padding:16px 10px;cursor:pointer;color:var(--text);transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;-webkit-tap-highlight-color:transparent}.length-option:hover{border-color:var(--divider-strong)}.length-option.is-selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:var(--surface-tint)}.length-value{font-family:var(--font-heading);font-size:22px;font-weight:600;line-height:1.1}.length-unit{font-size:12.5px;color:var(--text-muted)}.length-pages{font-size:12px;line-height:1.3;color:var(--text-muted);margin-top:2px}.length-value--sm{font-size:15px;line-height:1.3}.length-option--wide{grid-column:span 2}.reveal-block{margin-top:16px;animation:reveal-in .28s ease both}.verify-box{background:var(--surface);border:1px solid var(--divider);border-radius:var(--radius-lg);padding:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:150px;text-align:center}.submit-captcha{margin:18px 0 0}.verify-success{font-size:15px;color:var(--accent-green-dark)}.verify-feedback{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%}.verify-feedback-text{font-size:14px;line-height:1.5;color:var(--text-muted)}.turnstile-wrap{display:flex;flex-direction:column;align-items:center;gap:12px}.dev-captcha{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%}.dev-badge{display:inline-block;font-size:11.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--dev-text);background:var(--dev-bg);border:1px solid var(--dev-border);border-radius:999px;padding:4px 12px}.dev-note{font-size:13.5px;line-height:1.5;color:var(--text-muted)}.spinner-wrap{display:inline-flex;align-items:center;gap:10px;color:var(--text-muted)}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--divider);border-top-color:var(--accent);animation:spin .7s linear infinite}.spinner-label{font-size:14px}.generating{display:flex;align-items:center;justify-content:center;padding:48px 0}.generate-error{display:flex;flex-direction:column;align-items:center;gap:16px;padding:40px 0;text-align:center}.generate-error-text{font-size:14px;line-height:1.5;color:var(--text-muted)}.instructions-zone{margin:4px 0 24px}.instructions{margin-top:14px;background:var(--surface);border:1px solid var(--divider);border-left:3px solid var(--accent-green);border-radius:var(--radius);padding:16px 18px;animation:reveal-in .3s ease both}.instructions-title{font-family:var(--font-ui);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-green-dark);margin:0 0 8px}.instructions-text{font-family:var(--font-essay);font-size:15.5px;line-height:1.65;color:var(--text)}.panel{background:var(--surface);border:1px solid var(--divider);border-radius:var(--radius-lg);padding:22px}.task-summary{display:flex;flex-direction:column;gap:18px}.summary-row{display:flex;flex-direction:column;gap:4px}.summary-label{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-dark)}.summary-topic{font-family:var(--font-essay);font-size:19px;line-height:1.5;color:var(--text)}.summary-text{font-family:var(--font-essay);font-size:15.5px;line-height:1.65;color:var(--text)}.summary-value{font-size:15px;font-weight:500;color:var(--text)}.writing-topic{font-family:var(--font-essay);font-size:25px;line-height:1.45;font-weight:400;color:var(--text);margin:0 0 22px}.writing-meta{display:flex;gap:28px;align-items:flex-start;margin:24px 0;padding-top:20px;border-top:1px solid var(--divider)}.meta-item{display:flex;flex-direction:column;gap:3px}.meta-label{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.meta-value{font-size:16px;font-weight:500;color:var(--text)}.timer-time{font-variant-numeric:tabular-nums;font-size:22px;font-weight:500;color:var(--text)}.timer-time.is-up{color:var(--accent)}.writing-hint{font-size:14px;color:var(--text-muted);margin-bottom:24px}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:20px;background:#1f2a4461;animation:fade-in .18s ease both}.dialog{width:100%;max-width:400px;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:26px 24px;animation:dialog-in .2s ease both;outline:none}.dialog-title{font-family:var(--font-heading);font-size:22px;font-weight:500;color:var(--text);margin:0 0 8px}.dialog-text{font-size:14.5px;line-height:1.55;color:var(--text-muted);margin:0 0 22px}.dialog-actions{display:flex;gap:10px;justify-content:flex-end}.dialog-actions .btn{min-width:110px}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--divider);margin-bottom:20px;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{font-family:var(--font-ui);font-size:14px;font-weight:500;color:var(--text-muted);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;padding:11px 14px;cursor:pointer;white-space:nowrap;transition:color .15s ease,border-color .15s ease}.tab:hover{color:var(--text)}.tab[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}.tabpanel{outline:none}.text-input-panel{display:flex;flex-direction:column;gap:8px}.essay-textarea{min-height:280px}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;min-height:180px;padding:24px 20px;text-align:center;background:var(--surface);border:1.5px dashed var(--divider-strong);border-radius:var(--radius);cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.dropzone:hover,.dropzone.is-dragging{border-color:var(--accent);background:var(--surface-tint)}.dropzone-title{font-size:15px;font-weight:500;color:var(--text)}.dropzone-hint{font-size:13px;color:var(--text-muted)}.image-grid{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.file-card,.image-card{display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--divider);border-radius:var(--radius);padding:16px 18px}.file-info{display:flex;flex-direction:column;gap:2px;min-width:0}.file-name{font-size:14.5px;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size{font-size:12.5px;color:var(--text-muted)}.file-actions{display:flex;gap:8px;justify-content:flex-end}.image-preview{width:100%;max-height:340px;object-fit:contain;background:var(--surface-tint);border:1px solid var(--divider);border-radius:var(--radius-sm)}.analysis-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;min-height:50vh;padding:40px 0;text-align:center}.analysis-spinner{width:42px;height:42px;border-radius:50%;border:3px solid var(--divider);border-top-color:var(--accent);animation:spin .7s linear infinite}.analysis-loading-text{font-family:var(--font-ui);font-size:15px;color:var(--text-muted);min-height:22px}.analysis-result{display:flex;flex-direction:column;gap:28px}.grade-block{display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px 0 4px;text-align:center}.grade-number{font-family:var(--font-heading);font-size:76px;font-weight:600;line-height:1;color:var(--accent)}.grade-label{font-family:var(--font-ui);font-size:14px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.result-section{display:flex;flex-direction:column;gap:8px}.result-heading{font-family:var(--font-ui);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-dark);margin:0}.result-text{font-family:var(--font-essay);font-size:16px;line-height:1.65;color:var(--text);margin:0}.result-hint{font-size:13px;color:var(--text-muted);margin:0 0 10px}.annotated-text{font-family:var(--font-essay);font-size:16px;line-height:1.9;color:var(--text);white-space:pre-wrap;background:var(--surface);border:1px solid var(--divider);border-radius:var(--radius);padding:18px 20px}.annotation{position:relative;display:inline}.annotation-mark{display:inline;font:inherit;color:inherit;background:none;border:none;padding:0;margin:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px;border-radius:2px}.annotation--napaka .annotation-mark{text-decoration-color:var(--danger);background:#b3402a1f}.annotation--slabo .annotation-mark{text-decoration-color:#c79a1e;background:#e6b42838}.annotation-bubble{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);z-index:30;width:max-content;max-width:340px;white-space:normal;padding:7px 11px;background:var(--text);color:#fff;font-family:var(--font-ui);font-size:12.5px;line-height:1.45;text-align:left;border-radius:8px;box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s ease,visibility .15s ease}.annotation-bubble:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--text)}.annotation:hover .annotation-bubble,.annotation:focus-within .annotation-bubble,.annotation.is-open .annotation-bubble{opacity:1;visibility:visible}.analysis-error{margin:18px 0 0;padding:14px 16px;background:#b3402a12;border:1px solid rgba(179,64,42,.25);border-radius:var(--radius)}.analysis-error-text{font-size:14px;line-height:1.5;color:var(--danger);margin:0}.result-actions{display:flex;flex-direction:column;gap:10px;margin-top:32px}@keyframes step-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes reveal-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@media (min-width: 480px){.length-grid{grid-template-columns:repeat(4,1fr)}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.btn:focus-visible,.link-btn:focus-visible,.option:focus-visible,.length-option:focus-visible,.tab:focus-visible,.back-btn:focus-visible,.dropzone:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
