.sudoku-solver-page .toolbar {    display: flex;    flex-wrap: wrap;    gap: 8px;    padding: 15px 0;    justify-content: center;    align-items: center;}.sudoku-solver-page .toolbar .btn {    display: flex;    align-items: center;    justify-content: center;    border: none;    border-radius: 10px;    cursor: pointer;    transition: all 0.2s;}.sudoku-solver-page .toolbar .btn:hover {    transform: translateY(-2px);    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);}.sudoku-solver-page .toolbar .btn:active {    transform: translateY(0);}.sudoku-solver-page .toolbar .btn-icon-square {    width: 72px;    height: 48px;    padding: 0;}.sudoku-solver-page .toolbar .btn-icon-square .btn-svg {    width: 24px;    height: 24px;}.sudoku-solver-page #btn-next-step .icon-execute {    display: none;}.sudoku-solver-page #btn-next-step.btn-success .icon-next {    display: none;}.sudoku-solver-page #btn-next-step.btn-success .icon-execute {    display: block;}.sudoku-solver-page .toolbar .btn-icon {    font-size: 16px;}.sudoku-solver-page .btn-primary {    background: linear-gradient(135deg, #667eea, #764ba2);    color: white;}.sudoku-solver-page .btn-success {    background: linear-gradient(135deg, #28a745, #20c997);    color: white;}.sudoku-solver-page .btn-info {    background: linear-gradient(135deg, #17a2b8, #6610f2);    color: white;}.sudoku-solver-page .btn-warning {    background: linear-gradient(135deg, #ffc107, #fd7e14);    color: #333;}.sudoku-solver-page .btn-secondary {    background: linear-gradient(135deg, #6c757d, #495057);    color: white;}.sudoku-solver-page .btn-outline {    background: linear-gradient(135deg, #e8ecff, #d4dbff);    color: #667eea;    border: 1px solid #667eea;}.sudoku-solver-page .btn-outline:hover {    background: linear-gradient(135deg, #667eea, #5a6fd6);    color: white;}.sudoku-solver-page .btn-danger {    background: linear-gradient(135deg, #dc3545, #c82333);    color: white;}.sudoku-solver-page .toolbar .btn:disabled {    opacity: 0.5;    cursor: not-allowed;    transform: none !important;    box-shadow: none !important;}.sudoku-solver-page .mobile-only {    display: none;}.sudoku-solver-page .dropdown {    position: relative;    display: inline-block;}.sudoku-solver-page .dropdown-arrow {    font-size: 10px;    margin-left: 4px;}.sudoku-solver-page .dropdown-menu {    display: block;    position: absolute;    bottom: 100%;    right: 0;    margin-bottom: 5px;    background: white;    border-radius: 8px;    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.15);    z-index: 100;    min-width: 160px;    overflow: hidden;}.sudoku-solver-page .dropdown-menu.hidden {    display: none !important;}.sudoku-solver-page .dropdown-item {    display: flex;    align-items: center;    width: 100%;    padding: 10px 15px;    border: none;    background: none;    text-align: left;    font-size: 14px;    cursor: pointer;    transition: background 0.2s;    color: #333;}.sudoku-solver-page .dropdown-item:hover {    background: #f0f0f0;}.sudoku-solver-page .dropdown-item .item-icon {    margin-right: 10px;    font-size: 14px;}.sudoku-solver-page .dropdown-divider {    height: 1px;    background: #e9ecef;    margin: 5px 0;}.sudoku-solver-page .main-content {    display: flex;    flex-wrap: wrap;    gap: 20px;    align-items: flex-start;}.sudoku-solver-page .primary-panel {    flex: 0 0 auto;     display: flex;    flex-direction: column;    gap: 20px;    align-items: center;    --cell-size: 41px; }@media (min-width: 726px) and (max-width: 1023px) {    .sudoku-solver-page .primary-panel {        --cell-size: 59px;     }}@media (min-width: 1440px) {    .sudoku-solver-page .primary-panel {        --cell-size: 49px;     }}@media (min-width: 1920px) {    .sudoku-solver-page .primary-panel {        --cell-size: 55px;     }}@media (min-width: 2560px) {    .sudoku-solver-page .primary-panel {        --cell-size: 64px;     }}.sudoku-solver-page .sudoku-section {    display: flex;    justify-content: center;}.sudoku-solver-page .sudoku-wrapper {    position: relative;    display: inline-block;    padding-left: 25px;    padding-top: 20px;}.sudoku-solver-page .sudoku-grid {    display: grid;    grid-template-columns: repeat(9, var(--cell-size));    grid-template-rows: repeat(9, var(--cell-size));    gap: 1px;    background: #333;    border: 3px solid #333;    border-radius: 5px;    padding: 1px;}.sudoku-solver-page .cell {    background: white;    display: flex;    align-items: center;    justify-content: center;    font-size: calc(var(--cell-size) * 0.64);    font-weight: bold;    color: #333;    cursor: pointer;    position: relative;    transition: background-color 0.2s;}.sudoku-solver-page .cell:hover {    background-color: #e8f4ff;}.sudoku-solver-page .cell.selected {    background-color: #b3d9ff !important;    outline: 2px solid #0066cc;    outline-offset: -2px;}.sudoku-solver-page .cell.given {    color: #000;    background-color: #f0f0f0;}.sudoku-solver-page .cell.solved {    color: #0066cc;}.sudoku-solver-page .cell:nth-child(3n) {    border-right: 2px solid #333;}.sudoku-solver-page .cell:nth-child(9n) {    border-right: none;}.sudoku-solver-page .cell:nth-child(n+19):nth-child(-n+27),.sudoku-solver-page .cell:nth-child(n+46):nth-child(-n+54) {    border-bottom: 2px solid #333;}.sudoku-solver-page .candidates {    display: grid;    grid-template-columns: repeat(3, 1fr);    grid-template-rows: repeat(3, 1fr);    width: 100%;    height: 100%;    padding: 1px;    box-sizing: border-box;}.sudoku-solver-page .candidate {    display: flex;    align-items: center;    justify-content: center;    font-size: calc(var(--cell-size) * 0.24);    font-weight: normal;    color: #666;    line-height: 1;}.sudoku-solver-page .candidate[data-value="1"] { grid-area: 1 / 1; }.sudoku-solver-page .candidate[data-value="2"] { grid-area: 1 / 2; }.sudoku-solver-page .candidate[data-value="3"] { grid-area: 1 / 3; }.sudoku-solver-page .candidate[data-value="4"] { grid-area: 2 / 1; }.sudoku-solver-page .candidate[data-value="5"] { grid-area: 2 / 2; }.sudoku-solver-page .candidate[data-value="6"] { grid-area: 2 / 3; }.sudoku-solver-page .candidate[data-value="7"] { grid-area: 3 / 1; }.sudoku-solver-page .candidate[data-value="8"] { grid-area: 3 / 2; }.sudoku-solver-page .candidate[data-value="9"] { grid-area: 3 / 3; }.sudoku-solver-page .candidate.hidden {    visibility: hidden;}.sudoku-solver-page .cell.highlight-cell {    background-color: #fff3cd !important;}.sudoku-solver-page .cell.highlight-set {    background-color: #d4edda !important;}.sudoku-solver-page .candidate.highlight-candidate {    color: #0066cc;    font-weight: bold;    background-color: #cce5ff;    border-radius: 3px;}.sudoku-solver-page .candidate.highlight-eliminate {    color: #dc3545;    font-weight: bold;    background-color: #f8d7da;    border-radius: 3px;    text-decoration: line-through;}.sudoku-solver-page .candidate.highlight-chain-a {    color: #28a745;    font-weight: bold;    background-color: #d4edda;    border-radius: 3px;}.sudoku-solver-page .candidate.highlight-chain-b {    color: #fd7e14;    font-weight: bold;    background-color: #ffe5d0;    border-radius: 3px;}.sudoku-solver-page .candidate.highlight-excluded {    color: #999;    text-decoration: line-through;    opacity: 0.6;}.sudoku-solver-page .cell.highlight-related {    background-color: #e2e3f3 !important;    box-shadow: inset 0 0 0 2px #6c757d;}.sudoku-solver-page .excluded-marks {    position: absolute;    top: 2px;    left: 2px;    right: 2px;    bottom: 2px;    display: grid;    grid-template-columns: repeat(3, 1fr);    grid-template-rows: repeat(3, 1fr);    pointer-events: none;    z-index: 5;}.sudoku-solver-page .excluded-mark {    display: flex;    align-items: center;    justify-content: center;    font-size: 10px;    color: #dc3545;    text-decoration: line-through;    opacity: 0.7;}.sudoku-solver-page .excluded-mark[data-value="1"] { grid-area: 1 / 1; }.sudoku-solver-page .excluded-mark[data-value="2"] { grid-area: 1 / 2; }.sudoku-solver-page .excluded-mark[data-value="3"] { grid-area: 1 / 3; }.sudoku-solver-page .excluded-mark[data-value="4"] { grid-area: 2 / 1; }.sudoku-solver-page .excluded-mark[data-value="5"] { grid-area: 2 / 2; }.sudoku-solver-page .excluded-mark[data-value="6"] { grid-area: 2 / 3; }.sudoku-solver-page .excluded-mark[data-value="7"] { grid-area: 3 / 1; }.sudoku-solver-page .excluded-mark[data-value="8"] { grid-area: 3 / 2; }.sudoku-solver-page .excluded-mark[data-value="9"] { grid-area: 3 / 3; }.sudoku-solver-page .cell.error-highlight {    background-color: #f8d7da !important;    border: 2px solid #dc3545 !important;    animation: sudoku-error-pulse 1s ease-in-out infinite;}@keyframes sudoku-error-pulse {    0%, 100% { box-shadow: 0 0 5px rgba(220, 53, 69, 0.5); }    50% { box-shadow: 0 0 15px rgba(220, 53, 69, 0.8); }}.sudoku-solver-page .col-labels {    position: absolute;    top: 0;    left: 25px;    right: 0;    display: flex;    height: 20px;}.sudoku-solver-page .col-labels span {    flex: 1;    text-align: center;    font-size: 11px;    color: #666;    font-weight: 500;    line-height: 20px;}.sudoku-solver-page .row-labels {    position: absolute;    top: 20px;    left: 0;    width: 25px;    display: flex;    flex-direction: column;}.sudoku-solver-page .row-labels span {    height: calc(var(--cell-size) + 1px);    display: flex;    align-items: center;    justify-content: center;    font-size: 11px;    color: #666;    font-weight: 500;}.sudoku-solver-page .line-overlay {    position: absolute;    top: 20px;    left: 25px;    width: calc(100% - 25px);    height: calc(100% - 20px);    pointer-events: none;    z-index: 10;}.sudoku-solver-page .link-strong {    stroke: #28a745;    stroke-width: 1.5;    fill: none;}.sudoku-solver-page .link-weak {    stroke: #fd7e14;    stroke-width: 1.5;    stroke-dasharray: 4, 3;    fill: none;}.sudoku-solver-page .arrow-strong { fill: #28a745; }.sudoku-solver-page .arrow-weak { fill: #fd7e14; }.sudoku-solver-page .link-strong,.sudoku-solver-page .link-weak {    animation: sudoku-draw-line 0.5s ease-out forwards;}@keyframes sudoku-draw-line {    from { stroke-dashoffset: 1000; }    to { stroke-dashoffset: 0; }}.sudoku-solver-page .hint-section {    width: calc(25px + 9 * var(--cell-size) + 14px);    box-sizing: border-box;    background: #f8f9fa;    border-radius: 12px;    padding: 15px;    border: 1px solid #e9ecef;}.sudoku-solver-page .hint-header {    display: flex;    justify-content: space-between;    align-items: center;    margin-bottom: 10px;    padding-bottom: 8px;    border-bottom: 2px solid #667eea;}.sudoku-solver-page .hint-header h3 {    color: #555;    font-size: 1.1em;    margin: 0;}.sudoku-solver-page .step-progress {    font-size: 13px;    color: #667eea;    font-weight: 600;}.sudoku-solver-page .hint-display {    background: white;    border: 1px solid #e9ecef;    border-radius: 8px;    padding: 15px;    min-height: 160px;    max-height: 200px;    overflow-y: auto;    font-size: 14px;    line-height: 1.6;    color: #333;}.sudoku-solver-page .hint-placeholder {    color: #888;}.sudoku-solver-page .hint-placeholder p {    margin: 4px 0;}.sudoku-solver-page .hint-display .technique-name {    font-weight: bold;    color: #667eea;    font-size: 16px;    margin-bottom: 8px;}.sudoku-solver-page .hint-display .hint-detail {    color: #555;}.sudoku-solver-page .techniques-section {    flex: 0 0 240px;    width: 240px;    background: #f8f9fa;    border-radius: 12px;    padding: 15px;    border: 1px solid #e9ecef;    display: flex;    flex-direction: column;}.sudoku-solver-page .techniques-header {    display: flex;    justify-content: space-between;    align-items: center;    margin-bottom: 10px;    padding-bottom: 8px;    border-bottom: 2px solid #667eea;}.sudoku-solver-page .techniques-header h3 {    color: #555;    font-size: 1.1em;    margin: 0;}.sudoku-solver-page .techniques-header-actions {    display: flex;    align-items: center;    gap: 5px;}.sudoku-solver-page .btn-icon-only {    background: none;    border: 1px solid #ddd;    border-radius: 4px;    font-size: 16px;    cursor: pointer;    color: #666;    padding: 4px 8px;    transition: all 0.2s;}.sudoku-solver-page .btn-icon-only:hover {    background: #f0f0f0;    color: #667eea;    border-color: #667eea;}.sudoku-solver-page .btn-collapse {    background: none;    border: none;    font-size: 16px;    cursor: pointer;    color: #667eea;    padding: 4px 8px;}.sudoku-solver-page .techniques-content {    flex: 1;    overflow: hidden;    display: flex;    flex-direction: column;}.sudoku-solver-page .techniques-actions {    display: flex;    gap: 6px;    margin-bottom: 10px;    flex-shrink: 0;}.sudoku-solver-page .techniques-actions button {    flex: 1;    padding: 6px 10px;    font-size: 12px;    border: none;    border-radius: 6px;    cursor: pointer;    transition: all 0.2s;}.sudoku-solver-page .techniques-actions .btn-enable-all {    background-color: #28a745;    color: white;}.sudoku-solver-page .techniques-actions .btn-disable-all {    background-color: #dc3545;    color: white;}.sudoku-solver-page .techniques-actions .btn-reset-order {    background-color: #6c757d;    color: white;}.sudoku-solver-page .techniques-actions button:hover {    opacity: 0.85;}.sudoku-solver-page .techniques-list {    overflow-y: auto;    border: 1px solid #e9ecef;    border-radius: 8px;    background: white;}.sudoku-solver-page .technique-group {    border-bottom: 1px solid #e9ecef;}.sudoku-solver-page .technique-group:last-child {    border-bottom: none;}.sudoku-solver-page .technique-group-header {    display: flex;    align-items: center;    padding: 10px 12px;    background: #f0f0f0;    cursor: pointer;    user-select: none;    transition: background 0.2s;}.sudoku-solver-page .technique-group-header:hover {    background: #e5e5e5;}.sudoku-solver-page .technique-group-header .group-toggle {    margin-right: 8px;    font-size: 12px;    transition: transform 0.2s;}.sudoku-solver-page .technique-group-header.collapsed .group-toggle {    transform: rotate(-90deg);}.sudoku-solver-page .technique-group-header .group-name {    flex: 1;    font-weight: 600;    font-size: 13px;    color: #555;}.sudoku-solver-page .technique-group-header .group-count {    font-size: 11px;    color: #888;    background: #ddd;    padding: 2px 8px;    border-radius: 10px;}.sudoku-solver-page .technique-group-items {    padding: 5px;}.sudoku-solver-page .technique-group-header.collapsed + .technique-group-items {    display: none;}.sudoku-solver-page .technique-item {    display: flex;    align-items: center;    padding: 8px 10px;    transition: background-color 0.2s;    background: white;    border-radius: 4px;    margin-bottom: 2px;    cursor: grab;    font-size: 12px;    min-height: 38px;}.sudoku-solver-page .technique-item:last-child {    margin-bottom: 0;}.sudoku-solver-page .technique-item:hover {    background-color: #f5f5f5;}.sudoku-solver-page .technique-item .drag-handle {    color: #ccc;    font-size: 12px;    margin-right: 6px;    cursor: grab;    letter-spacing: -2px;}.sudoku-solver-page .technique-item .drag-handle:hover {    color: #667eea;}.sudoku-solver-page .technique-item.dragging {    opacity: 0.5;    cursor: grabbing;}.sudoku-solver-page .technique-item input[type="checkbox"] {    width: 16px;    height: 16px;    margin-right: 8px;    cursor: pointer;    accent-color: #667eea;    flex-shrink: 0;}.sudoku-solver-page .technique-item .technique-priority {    background: linear-gradient(135deg, #667eea, #764ba2);    color: white;    min-width: 20px;    height: 16px;    border-radius: 8px;    display: flex;    align-items: center;    justify-content: center;    font-size: 10px;    font-weight: bold;    margin-right: 6px;}.sudoku-solver-page .technique-item .technique-name {    flex: 1;    font-size: 12px;    color: #333;    line-height: 1.3;}.sudoku-solver-page .technique-item .technique-name-cn {    font-weight: 600;    color: #444;}.sudoku-solver-page .technique-item .technique-name-en {    font-size: 10px;    color: #888;}.sudoku-solver-page .technique-item.disabled {    opacity: 0.5;}.sudoku-solver-page .technique-item.disabled .technique-name {    text-decoration: line-through;}.sudoku-solver-page .technique-item.pinned {    background: linear-gradient(135deg, #f3e5f5 0%, #e1bee7 100%);    border-left: 3px solid #9C27B0;}.sudoku-solver-page .technique-group.pinned-group {    background: linear-gradient(135deg, #faf5ff 0%, #f3e8ff 100%);}.sudoku-solver-page .technique-group.pinned-group .technique-group-header {    background: linear-gradient(135deg, #f3e5f5 0%, #e1bee7 100%);}.sudoku-solver-page .technique-group.pinned-group .technique-group-header:hover {    background: linear-gradient(135deg, #e8d5f0 0%, #d6aed8 100%);}.sudoku-solver-page .technique-item .pin-btn {    font-size: 14px;    width: 22px;    height: 22px;    display: flex;    align-items: center;    justify-content: center;    margin-right: 4px;    cursor: pointer;    opacity: 0.3;    transition: opacity 0.2s;    border-radius: 4px;}.sudoku-solver-page .technique-item .pin-btn:hover {    opacity: 0.7;    background: rgba(102, 126, 234, 0.1);}.sudoku-solver-page .technique-item .pin-btn.pinned {    opacity: 1;    transform: rotate(-45deg);}.sudoku-solver-page .techniques-toolbar {    display: flex;    gap: 8px;    padding: 8px 10px;    background: #f8f9fa;    border-bottom: 1px solid #e9ecef;    position: sticky;    top: 0;    z-index: 10;}.sudoku-solver-page .techniques-toolbar .btn {    flex: 1;    padding: 6px 10px;    font-size: 12px;}.sudoku-solver-page .techniques-toolbar .btn-xs {    padding: 4px 8px;    font-size: 11px;    border-radius: 4px;    background: #fff;    border: 1px solid #ddd;    cursor: pointer;    transition: all 0.2s;}.sudoku-solver-page .techniques-toolbar .btn-xs:hover {    background: #667eea;    border-color: #667eea;    color: #fff;}.sudoku-solver-page .technique-group {    margin-bottom: 8px;}.sudoku-solver-page .technique-group-header {    display: flex;    align-items: center;    justify-content: space-between;    padding: 8px 12px;    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);    border-left: 4px solid #999;    font-size: 13px;    font-weight: 600;    color: #333;}.sudoku-solver-page .technique-level-name {    flex: 1;}.sudoku-solver-page .technique-level-color {    width: 12px;    height: 12px;    border-radius: 50%;    margin-left: 8px;}.sudoku-solver-page .technique-group-content {    padding: 4px;}.sudoku-solver-page .technique-item[data-level] {    border-left: 3px solid #999;    padding-left: 8px;}.sudoku-solver-page .technique-item .btn-pin {    font-size: 12px;    width: 24px;    height: 24px;    display: flex;    align-items: center;    justify-content: center;    cursor: pointer;    opacity: 0.3;    transition: opacity 0.2s, transform 0.2s;    border: none;    background: none;    border-radius: 4px;    flex-shrink: 0;}.sudoku-solver-page .technique-item .btn-pin:hover {    opacity: 0.7;    background: rgba(102, 126, 234, 0.1);}.sudoku-solver-page .technique-item.pinned .btn-pin {    opacity: 1;}.sudoku-solver-page .technique-item input[type="checkbox"]:disabled {    opacity: 0.6;    cursor: not-allowed;}.modal {    position: fixed;    top: 0;    left: 0;    right: 0;    bottom: 0;    z-index: 1000;    display: flex;    align-items: center;    justify-content: center;}.modal.hidden {    display: none;}.modal-overlay {    position: absolute;    top: 0;    left: 0;    right: 0;    bottom: 0;    background: rgba(0, 0, 0, 0.5);}.modal-content {    position: relative;    background: white;    border-radius: 12px;    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);    max-width: 500px;    width: 90%;    max-height: 90vh;    overflow: hidden;    display: flex;    flex-direction: column;}.modal-content.modal-large {    max-width: 700px;}.modal-header {    display: flex;    justify-content: space-between;    align-items: center;    padding: 15px 20px;    border-bottom: 1px solid #e9ecef;    background: #f8f9fa;}.modal-header h3 {    margin: 0;    color: #333;    font-size: 1.2em;}.modal-close {    background: none;    border: none;    font-size: 24px;    cursor: pointer;    color: #666;    padding: 0;    line-height: 1;}.modal-close:hover {    color: #333;}.modal-body {    padding: 20px;    overflow-y: auto;    flex: 1;}.import-section,.export-section {    margin-bottom: 15px;}.import-section > label,.export-section > label {    display: block;    font-weight: 600;    color: #555;    margin-bottom: 10px;}.format-select {    display: flex;    align-items: center;    gap: 10px;    margin-bottom: 10px;}.format-select label {    font-size: 14px;    color: #666;}.format-select select {    flex: 1;    padding: 8px 12px;    border: 1px solid #ddd;    border-radius: 6px;    font-size: 14px;    background: white;}.format-select select:focus {    outline: none;    border-color: #667eea;}#puzzle-input {    width: 100%;    height: 100px;    padding: 12px;    border: 1px solid #ddd;    border-radius: 8px;    font-family: monospace;    font-size: 13px;    resize: vertical;    margin-bottom: 10px;    box-sizing: border-box;}#puzzle-input:focus {    border-color: #667eea;    outline: none;}.import-buttons {    display: flex;    gap: 10px;}.import-buttons .btn {    flex: 1;}.modal-body hr {    border: none;    border-top: 1px solid #e9ecef;    margin: 20px 0;}.modal-body .btn {    width: 100%;    padding: 12px;    font-size: 15px;    border: none;    border-radius: 8px;    cursor: pointer;    transition: all 0.2s;}.modal-body .btn:hover {    opacity: 0.9;}.modal-body .btn-outline {    background: linear-gradient(135deg, #e8ecff, #d4dbff);    color: #667eea;    border: 1px solid #667eea;}.modal-body .btn-outline:hover {    background: linear-gradient(135deg, #667eea, #5a6fd6);    color: white;}.difficulty-grid {    display: grid;    grid-template-columns: repeat(2, 1fr);    gap: 12px;}.difficulty-btn {    display: flex;    flex-direction: column;    align-items: center;    padding: 15px 10px;    border: 2px solid #e9ecef;    border-radius: 10px;    background: white;    cursor: pointer;    transition: all 0.2s;}.difficulty-btn:hover {    border-color: #667eea;    background: #f8f9ff;    transform: translateY(-2px);    box-shadow: 0 4px 12px rgba(102, 126, 234, 0.2);}.difficulty-btn:active {    transform: translateY(0);}.difficulty-level {    font-size: 14px;    font-weight: 700;    color: #667eea;    margin-bottom: 4px;}.difficulty-name {    font-size: 13px;    color: #555;}.difficulty-btn[data-difficulty="0"] .difficulty-level,.difficulty-btn[data-difficulty="1"] .difficulty-level { color: #28a745; }.difficulty-btn[data-difficulty="2"] .difficulty-level,.difficulty-btn[data-difficulty="3"] .difficulty-level { color: #5cb85c; }.difficulty-btn[data-difficulty="4"] .difficulty-level,.difficulty-btn[data-difficulty="5"] .difficulty-level { color: #f0ad4e; }.difficulty-btn[data-difficulty="6"] .difficulty-level,.difficulty-btn[data-difficulty="7"] .difficulty-level { color: #fd7e14; }.difficulty-btn[data-difficulty="8"] .difficulty-level,.difficulty-btn[data-difficulty="9"] .difficulty-level { color: #dc3545; }.solve-path-list {    max-height: 60vh;    overflow-y: auto;}.path-empty {    padding: 40px 20px;    text-align: center;    color: #999;}.path-item {    display: flex;    align-items: center;    padding: 12px 15px;    border-bottom: 1px solid #e9ecef;    cursor: pointer;    transition: background 0.2s;}.path-item:last-child {    border-bottom: none;}.path-item:hover {    background: #f5f5f5;}.path-item.active {    background: #e3f2fd;    border-left: 3px solid #667eea;}.path-item .step-number {    background: linear-gradient(135deg, #667eea, #764ba2);    color: white;    min-width: 28px;    height: 28px;    border-radius: 50%;    display: flex;    align-items: center;    justify-content: center;    font-size: 12px;    font-weight: bold;    margin-right: 12px;    flex-shrink: 0;}.path-item.original .step-number {    background: #17a2b8;}.path-item .step-info {    flex: 1;    min-width: 0;}.path-item .step-technique {    font-weight: 600;    color: #333;    font-size: 14px;}.path-item .step-detail {    font-size: 12px;    color: #666;    margin-top: 2px;    white-space: nowrap;    overflow: hidden;    text-overflow: ellipsis;}@media (max-width: 991px) {    .sudoku-solver-page .techniques-section {        max-width: none;        width: 100%;        max-height: none;    }    .sudoku-solver-page .techniques-list {        max-height: 300px;    }}@media (max-width: 725px) {    .sudoku-solver-page .toolbar {        padding: 8px 0 15px 0;        gap: 6px;    }    .sudoku-solver-page .toolbar .btn-icon-square {        width: 60px;        height: 44px;    }    .sudoku-solver-page .toolbar .btn-icon-square .btn-svg {        width: 22px;        height: 22px;    }    .sudoku-solver-page #btn-reset-board,    .sudoku-solver-page #btn-clear,    .sudoku-solver-page #btn-solve-path {        display: none;    }    .sudoku-solver-page .mobile-only {        display: flex;    }    .sudoku-solver-page .main-content {        grid-template-columns: 1fr;        gap: 15px;    }    .sudoku-solver-page .primary-panel {        --cell-size: calc((100vw - 80px) / 9);    }    .sudoku-solver-page .sudoku-grid {        grid-template-columns: repeat(9, var(--cell-size));        grid-template-rows: repeat(9, var(--cell-size));    }    .sudoku-solver-page .sudoku-wrapper {        padding-left: 18px;        padding-top: 14px;    }    .sudoku-solver-page .col-labels {        left: 18px;        height: 14px;    }    .sudoku-solver-page .col-labels span {        font-size: 9px;        line-height: 14px;    }    .sudoku-solver-page .row-labels {        top: 14px;        width: 18px;    }    .sudoku-solver-page .row-labels span {        height: calc((100vw - 80px) / 9 + 1px);        font-size: 9px;    }    .sudoku-solver-page .line-overlay {        top: 14px;        left: 18px;        width: calc(100% - 18px);        height: calc(100% - 14px);    }    .sudoku-solver-page .techniques-section {        border-radius: 8px;    }    .sudoku-solver-page .techniques-content {        max-height: 0;        overflow: hidden;        transition: max-height 0.3s ease;    }    .sudoku-solver-page .techniques-content.expanded {        max-height: 400px;        overflow-y: auto;    }    .sudoku-solver-page .btn-collapse {        display: block;    }    .sudoku-solver-page .btn-collapse.expanded {        transform: rotate(180deg);    }    .sudoku-solver-page .hint-section {        width: calc(18px + 9 * var(--cell-size) + 14px);    }    .sudoku-solver-page .hint-display {        min-height: 60px;        max-height: 120px;    }    .modal-content {        width: 95%;        max-height: 85vh;    }}@media (max-width: 400px) {    .sudoku-solver-page .toolbar .btn-icon-square {        width: 52px;        height: 40px;    }    .sudoku-solver-page .toolbar .btn-icon-square .btn-svg {        width: 20px;        height: 20px;    }    .sudoku-solver-page .hint-header h3,    .sudoku-solver-page .techniques-header h3 {        font-size: 1em;    }}.hidden {    display: none !important;}.sudoku-solver-page .size-settings {    margin-top: 30px;    padding: 20px;    background: #f0f4f8;    border-radius: 12px;    border: 2px dashed #667eea;}.sudoku-solver-page .size-settings h4 {    margin: 0 0 15px 0;    color: #667eea;    font-size: 16px;}.sudoku-solver-page .size-settings .setting-row {    display: flex;    align-items: center;    gap: 15px;    margin-bottom: 12px;    flex-wrap: wrap;}.sudoku-solver-page .size-settings label {    min-width: 180px;    font-size: 14px;    color: #333;}.sudoku-solver-page .size-settings input[type="range"] {    flex: 1;    min-width: 150px;    max-width: 300px;    height: 6px;    -webkit-appearance: none;    background: #ddd;    border-radius: 3px;    outline: none;}.sudoku-solver-page .size-settings input[type="range"]::-webkit-slider-thumb {    -webkit-appearance: none;    width: 18px;    height: 18px;    background: #667eea;    border-radius: 50%;    cursor: pointer;}.sudoku-solver-page .size-settings .size-info {    font-size: 13px;    color: #666;    background: #fff;    padding: 4px 10px;    border-radius: 4px;}.sudoku-solver-page .btn-techniques-toggle {    display: flex;}.sudoku-solver-page .techniques-sidebar-overlay {    position: fixed;    top: 0;    left: 0;    right: 0;    bottom: 0;    background: rgba(0, 0, 0, 0.5);    z-index: 1000;    opacity: 0;    transition: opacity 0.3s ease;}.sudoku-solver-page .techniques-sidebar-overlay.visible {    opacity: 1;}.sudoku-solver-page .techniques-sidebar {    position: fixed;    top: 0;    right: -300px;    width: 280px;    height: 100%;    background: #fff;    box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);    z-index: 1001;    display: flex;    flex-direction: column;    transition: right 0.3s ease;}.sudoku-solver-page .techniques-sidebar.visible {    right: 0;}.sudoku-solver-page .techniques-sidebar-header {    display: flex;    justify-content: space-between;    align-items: center;    padding: 15px;    border-bottom: 2px solid #667eea;    background: #f8f9fa;}.sudoku-solver-page .techniques-sidebar-header h3 {    margin: 0;    font-size: 1.1em;    color: #333;}.sudoku-solver-page .btn-close-sidebar {    background: none;    border: none;    font-size: 20px;    color: #666;    cursor: pointer;    padding: 5px 10px;    border-radius: 4px;    transition: background 0.2s;}.sudoku-solver-page .btn-close-sidebar:hover {    background: #e9ecef;    color: #333;}.sudoku-solver-page .techniques-sidebar-content {    flex: 1;    overflow-y: auto;    padding: 10px;}.sudoku-solver-page .techniques-sidebar-footer {    padding: 10px 15px;    border-top: 1px solid #e9ecef;    background: #f8f9fa;}.sudoku-solver-page .btn-sm {    padding: 6px 12px;    font-size: 13px;}.sudoku-solver-page .right-panel {    display: none;}@media (min-width: 1024px) {    .sudoku-solver-page {        display: flex;        gap: 20px;        align-items: flex-start;         width: 100%;        max-width: 100%;        box-sizing: border-box;    }    .sudoku-solver-page .main-content {        flex: 0 0 auto;         min-width: 0;        min-height: auto !important;         display: block;         height: fit-content;     }    .sudoku-solver-page #btn-show-techniques,    .sudoku-solver-page #btn-solve-path {        display: none !important;    }    .sudoku-solver-page .right-panel {        flex: 0 0 auto;         min-width: 240px;        max-width: 320px;        width: 280px;        background: white;        border-radius: 12px;        box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);        display: flex;        flex-direction: column;    }    .sudoku-solver-page .btn-close-panel {        display: none;    }    .sudoku-solver-page .panel-tabs {        display: flex;        align-items: center;        border-bottom: 1px solid #e9ecef;        background: #f8f9fa;        border-radius: 12px 12px 0 0;        padding: 0;    }    .sudoku-solver-page .panel-tab {        flex: 1;        padding: 12px 8px;        background: none;        border: none;        border-bottom: 2px solid transparent;        cursor: pointer;        font-size: 14px;        font-weight: 500;        color: #666;        transition: all 0.2s;        white-space: nowrap;    }    .sudoku-solver-page .panel-tab:hover {        color: #667eea;        background: rgba(102, 126, 234, 0.05);    }    .sudoku-solver-page .panel-tab.active {        color: #667eea;        border-bottom-color: #667eea;        background: white;    }    .sudoku-solver-page .panel-tab span {        font-weight: normal;        color: #999;        font-size: 12px;    }    .sudoku-solver-page .panel-tab.active span {        color: #667eea;    }    .sudoku-solver-page .panel-content {        overflow: hidden;        display: flex;        flex-direction: column;    }    .sudoku-solver-page .tab-pane {        display: none;        overflow-y: auto;        flex-direction: column;        max-height: 520px;     }    .sudoku-solver-page .tab-pane.active {        display: flex;    }    .sudoku-solver-page .right-panel .solve-path-list {        max-height: none;    }    .sudoku-solver-page .right-panel .path-item {        padding: 10px 12px;    }    .sudoku-solver-page .right-panel .path-item:hover {        background: #f0f4ff;    }    .sudoku-solver-page .right-panel .path-item.active {        background: #e3f2fd;        border-left: 3px solid #667eea;    }    .sudoku-solver-page .right-panel .step-number {        min-width: 24px;        height: 24px;        font-size: 11px;        margin-right: 10px;    }    .sudoku-solver-page .right-panel .step-technique {        font-size: 13px;    }    .sudoku-solver-page .right-panel .step-detail {        font-size: 12px;    }    .sudoku-solver-page #panel-techniques-list {        overflow-y: auto;        border: none;        border-radius: 0;    }    .sudoku-solver-page .panel-techniques-footer {        padding: 10px 12px;        border-top: 1px solid #e9ecef;        background: #f8f9fa;        flex-shrink: 0;    }    .sudoku-solver-page .panel-techniques-footer .btn {        width: 100%;    }}@media (min-width: 1440px) {    .sudoku-solver-page .right-panel {        min-width: 320px;        max-width: 400px;        width: 360px;    }    .sudoku-solver-page .tab-pane {        max-height: 480px;     }    .sudoku-solver-page .panel-tab {        padding: 14px 10px;        font-size: 15px;    }    .sudoku-solver-page .right-panel .path-item {        padding: 12px 15px;    }    .sudoku-solver-page .right-panel .step-number {        min-width: 28px;        height: 28px;        font-size: 12px;        margin-right: 12px;    }    .sudoku-solver-page .right-panel .step-technique {        font-size: 14px;    }    .sudoku-solver-page .right-panel .step-detail {        font-size: 13px;    }}@media (min-width: 1920px) {    .sudoku-solver-page .right-panel {        min-width: 360px;        max-width: 450px;        width: 420px;    }    .sudoku-solver-page .tab-pane {        max-height: 520px;     }}.solver-docs {    background: var(--bg-primary, #fff);    border-radius: 15px;    padding: 40px 30px;    margin-top: 20px;    line-height: 1.8;    color: var(--text-primary, #333);    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);}.solver-docs .docs-section {    margin-bottom: 35px;}.solver-docs .docs-section:last-child {    margin-bottom: 0;}.solver-docs h2 {    color: #764ba2;    font-size: 1.5rem;    font-weight: bold;    margin-top: 0;    margin-bottom: 20px;    padding-bottom: 10px;    border-bottom: 2px solid var(--border-color, #e9ecef);}.solver-docs .docs-section:not(:first-child) h2 {    margin-top: 35px;}.solver-docs h3 {    color: #764ba2;    font-size: 1.2rem;    font-weight: bold;    margin-top: 25px;    margin-bottom: 12px;}.solver-docs p {    margin-bottom: 15px;}.solver-docs ul,.solver-docs ol {    margin-bottom: 20px;    padding-left: 25px;}.solver-docs li {    margin-bottom: 8px;}.solver-docs a {    color: #667eea;    text-decoration: none;}.solver-docs a:hover {    color: #764ba2;    text-decoration: underline;}.solver-docs code {    font-family: monospace;    background: #f3f4f6;    padding: 2px 6px;    border-radius: 4px;    font-weight: bold;    color: #667eea;}.solver-docs .technique-list li {    margin-bottom: 10px;}.solver-docs .technique-list a {    font-weight: 500;}@media (max-width: 991px) {    .solver-docs {        padding: 25px 20px;        margin-top: 15px;    }    .solver-docs h2 {        font-size: 1.3rem;    }    .solver-docs h3 {        font-size: 1.1rem;    }}