/*
 * Copyright (c) 2019-2026 ИП Громова Анна Александровна
 * Все права защищены. Копирование запрещено.
 */
:root{--primary:#e63946;--primary-hover:#d12e3b;--bg:#fff8f0;--accent:#f4a261;--text:#264653;--success:#2a9d8f;--error:#e76f51;--gray:#e9ecef;--gray-dark:#6c757d;--radius:12px;--shadow:0 2px 8px rgba(0,0,0,.08)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh}.container{max-width:900px;margin:0 auto;padding:0 20px}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 24px;border:none;border-radius:var(--radius);font-size:16px;cursor:pointer;transition:all .2s;text-decoration:none}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--gray);color:var(--text)}.btn-secondary:hover{background:#d4d4d4}.btn-success{background:var(--success);color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.progress-bar{width:100%;height:8px;background:var(--gray);border-radius:4px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--success);transition:width .3s ease}.step-indicator{display:flex;gap:8px;justify-content:center;margin:20px 0}.step-dot{width:14px;height:14px;border-radius:50%;background:var(--gray);transition:all .3s;cursor:pointer}.step-dot.active{background:var(--primary)}.step-dot.done{background:var(--success)}.step-dot:hover{transform:scale(1.3);opacity:.8}.two-column{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width:768px){.two-column{grid-template-columns:1fr}.container{padding:0 10px}.header{padding:8px 0;margin-bottom:12px}.header h1{font-size:14px}.header-logo{height:32px}.header-inner{gap:8px}#step-title{font-size:16px!important;margin-bottom:8px!important}.step-indicator{margin:8px 0;gap:4px}.step-dot{width:10px;height:10px}.card{padding:12px;border-radius:8px}.dialogue-line{grid-template-columns:1fr;gap:2px;padding:8px 10px}.dialogue-line .speaker{font-size:12px}.dialogue-line .es{font-size:14px}.dialogue-line .ru{font-size:12px}.vocab-card{padding:8px 10px;border-radius:6px}.vocab-card .es{white-space:normal;font-size:13px;margin-right:6px}.vocab-card .ru{font-size:12px}.vocab-card .play-icon{font-size:12px;margin-left:4px}.shadowing-phrase{font-size:16px;padding:12px;margin:8px 0}.record-btn{width:52px;height:52px;border-width:3px;margin:8px auto}.record-btn .icon{font-size:20px}.gap-sentence{font-size:14px;padding:8px;margin:8px 0;border-radius:6px}.gap-sentence select{font-size:13px;padding:2px 4px}.quiz-option{font-size:13px;padding:8px 10px;margin:4px 0;border-radius:6px}.score-display .score-number{font-size:36px}.score-display .score-label{font-size:14px}.score-display{padding:12px}.nav-buttons{flex-direction:row;gap:6px;margin-top:16px;padding-top:12px}.nav-buttons .btn{padding:6px 10px;flex:1;justify-content:center}.btn,.nav-buttons .btn{font-size:13px;border-radius:8px}.btn{padding:6px 12px;gap:6px}.create-dialogue-field{margin:10px 0}.create-dialogue-field label{font-size:13px;margin-bottom:2px}.create-dialogue-field input{font-size:13px;padding:6px 8px;border-radius:6px}.memory-grid{gap:8px}.memory-item{padding:8px 10px;font-size:13px;border-radius:6px;border-width:1px}.memory-column{gap:6px}.part-header{padding:10px 12px;font-size:14px;border-radius:8px 8px 0 0}.part-body{padding:6px 12px 10px}.dialog-link{padding:6px 10px;font-size:13px;border-radius:6px}.dialog-link .status{width:20px;height:20px;font-size:12px}.dialog-link--locked{padding:6px 10px;font-size:13px}.footer{padding:12px;font-size:11px}table{font-size:12px}table td,table th{padding:3px 6px!important}.auth-modal .auth-card{padding:20px}.demo-alert{font-size:11px;padding:5px 8px}.demo-header .logo-text{font-size:13px}.demo-header .header-inner{gap:6px}.progress-bar{height:6px}.admin-table{font-size:12px}.admin-table td,.admin-table th{padding:6px 8px}.auth-input{font-size:14px;padding:10px}}@keyframes a{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:a .3s ease}.vocab-card{display:flex;align-items:center;padding:12px 16px;background:#fff;border:1px solid var(--gray);border-radius:8px;cursor:pointer;transition:all .2s}.vocab-card:hover{border-color:var(--primary)}.vocab-card .es{font-weight:600;margin-right:12px;white-space:nowrap}.vocab-card .ru{color:var(--gray-dark);flex:1;text-align:left}.vocab-card .play-icon{font-size:14px;color:var(--accent);cursor:pointer;margin-left:8px;flex-shrink:0}.dialogue-line{display:grid;grid-template-columns:100px 1fr 1fr;gap:12px;padding:12px;border-bottom:1px solid var(--gray);align-items:start}.dialogue-line .speaker{font-weight:700;color:var(--primary)}.dialogue-line .es{font-style:italic}.dialogue-line .ru{color:var(--gray-dark)}.memory-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.memory-column{display:flex;flex-direction:column;gap:8px}.memory-item{padding:12px 16px;background:#fff;border:2px solid var(--gray);border-radius:8px;cursor:pointer;text-align:center;transition:all .2s;user-select:none}.memory-item:hover{border-color:var(--accent)}.memory-item.selected{border-color:var(--primary);background:#fff0f0}.memory-item.matched{border-color:var(--success);background:#f0fff4;opacity:.6;cursor:default}.memory-item.wrong{border-color:var(--error);animation:b .3s}@keyframes b{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.quiz-option{display:block;width:100%;padding:12px 16px;margin:8px 0;background:#fff;border:2px solid var(--gray);border-radius:8px;cursor:pointer;text-align:left;font-size:16px;transition:all .2s}.quiz-option:hover{border-color:var(--accent)}.quiz-option.selected{border-color:var(--primary);background:#fff0f0}.quiz-option.correct{border-color:var(--success);background:#f0fff4}.quiz-option.incorrect{border-color:var(--error);background:#fff0f0}.create-dialogue-field{margin:16px 0}.create-dialogue-field label{display:block;margin-bottom:4px;font-weight:600}.create-dialogue-field input{width:100%;padding:10px 12px;border:2px solid var(--gray);border-radius:8px;font-size:16px}.create-dialogue-field input:focus{outline:none;border-color:var(--primary)}.header{background:var(--primary);color:#fff;padding:16px 0;margin-bottom:24px}.header h1{font-size:20px}.header a{color:#fff;text-decoration:none}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px}.header-logo{height:48px;width:auto;flex-shrink:0}.demo-header{background:var(--primary);color:#fff;padding:12px 0;position:sticky;top:0;z-index:1}.demo-header .header-inner{display:flex;align-items:center;justify-content:space-between}.demo-header a{color:#fff;text-decoration:none}.part-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;overflow:hidden}.part-header{padding:16px 24px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;background:var(--bg);border-bottom:1px solid var(--gray);font-weight:700;font-size:18px}.part-header:hover{background:#fef0e6}.part-body{padding:8px 24px 16px}.part-body--hidden{display:none}.dialog-link{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;margin:4px 0;border-radius:8px;text-decoration:none;color:var(--text);transition:background .2s}.dialog-link:hover{background:#fef0e6}.dialog-link .status{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px}.dialog-link .status.locked{background:var(--gray);color:var(--gray-dark)}.dialog-link .status.available{background:var(--accent);color:#fff}.dialog-link .status.done{background:var(--success);color:#fff}.nav-buttons{display:flex;justify-content:space-between;margin-top:24px;padding-top:16px;border-top:1px solid var(--gray)}.gap-sentence{font-size:18px;margin:12px 0;padding:12px;background:#fff;border-radius:8px}.gap-sentence select{padding:4px 8px;font-size:16px;border:2px solid var(--gray);border-radius:6px;margin:0 4px}.gap-sentence select.correct{border-color:var(--success)}.gap-sentence select.incorrect{border-color:var(--error)}.score-display{text-align:center;padding:32px}.score-display .score-number{font-size:64px;font-weight:800;color:var(--primary)}.score-display .score-label{font-size:18px;color:var(--gray-dark)}.record-btn{width:80px;height:80px;border-radius:50%;border:4px solid var(--primary);background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;margin:16px auto}.record-btn.recording{background:var(--error);border-color:var(--error);animation:c 1s infinite}@keyframes c{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.record-btn .icon{font-size:32px}.shadowing-phrase{font-size:24px;text-align:center;padding:24px;margin:16px 0;background:#fff;border-radius:var(--radius);border:2px solid var(--gray);line-height:1.6}.shadowing-part{transition:color .2s,font-weight .2s}.auth-card{max-width:400px;margin:60px auto;padding:32px;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow)}.auth-input{width:100%;padding:12px;margin:8px 0;border:2px solid var(--gray);border-radius:8px;font-size:16px;box-sizing:border-box}.auth-input:focus{outline:none;border-color:var(--primary)}.auth-error{background:#fee;color:#c00;padding:8px 12px;border-radius:8px;margin:8px 0;font-size:14px}.dialog-link--locked{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;margin:4px 0;opacity:.5;cursor:not-allowed;text-decoration:none;color:var(--gray-dark);border-radius:8px}.dialog-link--locked .status.locked{font-size:16px}select.auth-input{cursor:pointer}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table th{text-align:left;padding:10px 12px;background:var(--gray);font-weight:600;white-space:nowrap}.admin-table td{padding:10px 12px;border-bottom:1px solid var(--gray)}.admin-table tr:hover{background:#fef0e6}