.game-container{width:100%;max-width:600px;margin:0 auto;padding:20px;outline:none!important;overscroll-behavior:none;touch-action:manipulation}.game-container:focus{outline:none!important}.game-container:focus-visible{outline:none!important}.game-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.game-header h1{font-size:1.2rem;font-weight:600;color:#000}.timer{font-family:monospace;font-size:1.2rem;font-weight:500;color:#2563eb;background:#f3f4f6;padding:4px 8px;border-radius:4px}.game-grid{display:grid;gap:1px;padding:10px;background:#ccc;border:2px solid #ccc;border-radius:8px;box-shadow:0 2px 4px #0000001a;position:relative;aspect-ratio:1;width:100%;max-width:600px;margin:0 auto;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;overscroll-behavior:none}.grid-cell{aspect-ratio:1;background:#f5f5f5;border:1px solid #ddd;position:relative;cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;transition:background-color .2s ease;outline:none!important}.grid-cell:focus{outline:none!important}.grid-cell:focus-visible{outline:none!important}.grid-cell.in-path{position:relative}.grid-cell.in-path:before{content:"";position:absolute;background-color:#4ade80;z-index:1;box-shadow:0 0 0 1px #4ade80}.grid-cell.in-path.from-left.to-right:before,.grid-cell.in-path.from-right.to-left:before{top:30%;left:-1px;width:calc(100% + 2px);height:40%}.grid-cell.in-path.from-top.to-bottom:before,.grid-cell.in-path.from-bottom.to-top:before{top:-1px;left:30%;width:40%;height:calc(100% + 2px);z-index:1}.grid-cell.in-path.number-1.to-bottom:before{top:50%;left:30%;width:40%;height:calc(50% + 1px);background-color:#4ade80;z-index:1;box-shadow:0 0 0 1px #4ade80}.grid-cell.in-path.number-1.to-top:before{top:-1px;left:30%;width:40%;height:50%;background-color:#4ade80;z-index:1;box-shadow:0 0 0 1px #4ade80}.grid-cell.in-path.number-1.to-left:before{top:30%;left:-1px;width:50%;height:40%;background-color:#4ade80;z-index:1;box-shadow:0 0 0 1px #4ade80}.grid-cell.in-path.number-1.to-right:before{top:30%;left:50%;width:calc(50% + 1px);height:40%;background-color:#4ade80;z-index:1;box-shadow:0 0 0 1px #4ade80}.grid-cell.in-path.number-8.from-top:before{top:-1px;left:30%;width:40%;height:50%;background-color:#4ade80;z-index:1;box-shadow:0 0 0 1px #4ade80}.grid-cell.in-path.number-8.from-bottom:before{top:50%;left:30%;width:40%;height:calc(50% + 1px);background-color:#4ade80;z-index:1;box-shadow:0 0 0 1px #4ade80}.grid-cell.in-path.from-top.to-left:before,.grid-cell.in-path.from-left.to-top:before{top:-1px;left:-1px;width:calc(100% + 1px);height:calc(100% + 1px);border-bottom-right-radius:100%;clip-path:polygon(30% 0%,30% 30%,0% 30%,0% 70%,70% 70%,70% 0%)}.grid-cell.in-path.from-top.to-right:before,.grid-cell.in-path.from-right.to-top:before{top:-1px;left:-1px;width:calc(100% + 2px);height:calc(100% + 1px);clip-path:polygon(29% 45%,29% 0%,70% 0%,70% 29%,calc(100% + 1px) 29%,calc(100% + 1px) 71%,29% 71%)}.grid-cell.in-path.from-bottom.to-left:before,.grid-cell.in-path.from-left.to-bottom:before{top:-1px;left:-1px;width:calc(100% + 1px);height:calc(100% + 2px);border-top-right-radius:100%;clip-path:polygon(-1% 30%,70% 30%,70% calc(100% + 1px),30% calc(100% + 1px),30% 70%,-1% 70%)}.grid-cell.in-path.from-bottom.to-right:before,.grid-cell.in-path.from-right.to-bottom:before{top:-1px;left:-1px;width:calc(100% + 2px);height:calc(100% + 2px);border-top-left-radius:100%;clip-path:polygon(29% 29%,calc(100% + 1px) 29%,calc(100% + 1px) 71%,71% 71%,71% calc(100% + 1px),29% calc(100% + 1px))}.grid-cell.in-path .cell-number{z-index:3;position:relative}.cell-number{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80%;height:80%;background:#333;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:1.2rem;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;pointer-events:none;z-index:2;transition:border .2s ease,box-shadow .2s ease}.cell-number.visited{border:5px solid #4ade80;box-shadow:0 0 12px #4ade80b3;transform:translate(-50%,-50%) scale(1.1)}.controls{display:flex;gap:20px;justify-content:center;align-items:center;margin-top:20px;position:relative;z-index:9999;pointer-events:auto;touch-action:auto}.controls-row{display:flex;gap:10px;align-items:center;touch-action:auto}.grid-size{display:flex;align-items:center;gap:10px;position:relative;z-index:10000;pointer-events:auto;touch-action:manipulation}.grid-size label{font-size:.9rem;color:#333}.grid-size select{padding:8px;border-radius:4px;border:1px solid #ccc;background-color:#fff;position:relative;z-index:10000;pointer-events:auto!important;-webkit-appearance:menulist!important;-moz-appearance:menulist!important;appearance:menulist!important;min-height:44px;min-width:80px;font-size:16px;touch-action:manipulation;cursor:pointer}@media (max-width: 768px){.grid-size select{min-height:48px;min-width:100px;font-size:16px;padding:8px 12px;margin:4px 0}.controls-row{flex-wrap:wrap;justify-content:center}.grid-size{margin:8px 0}.cell-number{width:90%;height:90%;font-size:1.4rem;font-weight:700}}@media (max-width: 480px){.cell-number{width:95%;height:95%;font-size:1.3rem;color:#fff;text-shadow:0px 0px 2px rgba(0,0,0,.8)}.cell-number.visited{border:3px solid #4ade80;box-shadow:0 0 8px #4ade80cc}}.button{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-weight:500}.button-primary{background-color:#2563eb;color:#fff}.button-primary:hover{background-color:#1d4ed8}.button-secondary{background-color:#f3f4f6;color:#374151}.button-secondary:hover{background-color:#e5e7eb}.solution-controls{margin-top:1rem;display:flex;justify-content:center}.button-primary{background-color:#4caf50;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer}.button-primary:hover{background-color:#45a049}.button-secondary{background-color:#f44336;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer}.success-popup{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:100000000}.success-content{background-color:#fff;padding:2rem;border-radius:8px;text-align:center;box-shadow:0 2px 10px #0000001a}.success-content h2{color:#22c55e;margin-bottom:1rem;font-size:1.5rem}.success-content p{margin-bottom:1.5rem;color:#374151;font-size:1.1rem}.loading-container{position:absolute;top:10px;left:10px;right:10px;bottom:10px;display:flex;justify-content:center;align-items:center;background:#fffc;z-index:10;border-radius:4px}.spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #2563eb;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.grid-cell.in-path.from-left.to-right[class*=number-]:before,.grid-cell.in-path.from-right.to-left[class*=number-]:before{top:30%;left:-1px;width:calc(100% + 2px);height:40%;background-color:#4ade80;z-index:1;box-shadow:0 0 0 1px #4ade80}.grid-cell.in-path.from-top.to-bottom[class*=number-]:before,.grid-cell.in-path.from-bottom.to-top[class*=number-]:before{top:-1px;left:30%;width:40%;height:calc(100% + 2px);background-color:#4ade80;z-index:1;box-shadow:0 0 0 1px #4ade80}.grid-cell.in-path .cell-number{z-index:3;position:relative;background-color:#333;border-radius:50%;box-shadow:0 0 0 2px #4ade80}.grid-cell.in-path.last-number.from-left:before{top:30%;left:-1px;width:50%;height:40%;background-color:#4ade80;z-index:1;box-shadow:0 0 0 1px #4ade80}.grid-cell.in-path.last-number.from-right:before{top:30%;left:50%;width:calc(50% + 1px);height:40%;background-color:#4ade80;z-index:1;box-shadow:0 0 0 1px #4ade80}.grid-cell.in-path.last-number.from-top:before{top:-1px;left:30%;width:40%;height:50%;background-color:#4ade80;z-index:1;box-shadow:0 0 0 1px #4ade80}.grid-cell.in-path.last-number.from-bottom:before{top:50%;left:30%;width:40%;height:calc(50% + 1px);background-color:#4ade80;z-index:1;box-shadow:0 0 0 1px #4ade80}.grid-cell.hover-indicator{position:relative}.grid-cell.hover-indicator:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-color:#4ade804d;z-index:4;border:2px solid #4ade80;box-sizing:border-box;pointer-events:none}.last-segment-indicator{position:absolute;background-color:#4ade8080;z-index:3;pointer-events:none;transition:all .05s linear}.header-right{display:flex;align-items:center;gap:15px}.info-button{width:24px;height:24px;border-radius:50%;background-color:#2a6ab2;color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;font-weight:700;font-style:italic;transition:background-color .2s}.info-button:hover{background-color:#1d4e85}.info-icon{font-size:14px}.info-modal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000}.info-content{background-color:#fff;padding:25px;border-radius:8px;max-width:600px;width:90%;max-height:80vh;overflow-y:auto}.info-text{line-height:1.6;color:#333;font-size:1rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;max-width:95%;margin:0 auto 20px}.info-text p{margin-bottom:15px;text-align:justify}.info-text strong{color:#2563eb;font-weight:600}.info-text h4{margin-top:20px;margin-bottom:12px;color:#1e3a8a;font-size:1.15rem;font-weight:600;padding-bottom:8px;border-bottom:2px solid #e5e7eb}.info-text ul{padding-left:25px;margin-bottom:18px;list-style-type:none}.info-text li:before{content:"•";color:#2563eb;position:absolute;left:-12px;font-weight:700;font-size:1.2em}.info-text li strong{display:inline-block;margin-right:5px}.info-text p:last-child strong{background-color:#f3f4f6;padding:2px 6px;border-radius:4px;color:#1f2937}.info-section{margin-bottom:20px}.info-language{color:#2a6ab2;margin-bottom:10px;font-size:1.2em;border-bottom:1px solid #eaeaea;padding-bottom:5px}.info-separator{border:0;height:1px;background-image:linear-gradient(to right,#0000,#0003,#0000);margin:25px 0}.info-content h4{margin-top:15px;margin-bottom:10px;color:#333}.language-toggle-button{background-color:transparent;border:1px solid #ddd;border-radius:4px;padding:4px 8px;font-size:20px;line-height:1;cursor:pointer;transition:transform .2s,box-shadow .2s;display:flex;align-items:center;justify-content:center}.language-toggle-button:hover{transform:scale(1.1);box-shadow:0 2px 5px #0003}.language-toggle-button:focus{outline:none;box-shadow:0 0 0 2px #2a6ab280}@media (max-width: 768px){.game-grid{max-width:100%;width:calc(100vw - 40px);max-height:calc(100vh - 200px);overflow:hidden}.game-grid[data-size="6"],.game-grid[data-size="7"],.game-grid[data-size="8"]{font-size:.9rem}.game-grid[data-size="9"],.game-grid[data-size="10"]{font-size:.8rem}.grid-cell{min-width:0!important;min-height:0!important}.cell-number{width:70%!important;height:70%!important;font-size:12px!important}}.react-calendar{width:350px;max-width:100%;background:#fff;border:1px solid #a0a096;font-family:Arial,Helvetica,sans-serif;line-height:1.125em}.react-calendar--doubleView{width:700px}.react-calendar--doubleView .react-calendar__viewContainer{display:flex;margin:-.5em}.react-calendar--doubleView .react-calendar__viewContainer>*{width:50%;margin:.5em}.react-calendar,.react-calendar *,.react-calendar *:before,.react-calendar *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.react-calendar button{margin:0;border:0;outline:none}.react-calendar button:enabled:hover{cursor:pointer}.react-calendar__navigation{display:flex;height:44px;margin-bottom:1em}.react-calendar__navigation button{min-width:44px;background:none}.react-calendar__navigation button:disabled{background-color:#f0f0f0}.react-calendar__navigation button:enabled:hover,.react-calendar__navigation button:enabled:focus{background-color:#e6e6e6}.react-calendar__month-view__weekdays{text-align:center;text-transform:uppercase;font:inherit;font-size:.75em;font-weight:700}.react-calendar__month-view__weekdays__weekday{padding:.5em}.react-calendar__month-view__weekNumbers .react-calendar__tile{display:flex;align-items:center;justify-content:center;font:inherit;font-size:.75em;font-weight:700}.react-calendar__month-view__days__day--weekend{color:#d10000}.react-calendar__month-view__days__day--neighboringMonth,.react-calendar__decade-view__years__year--neighboringDecade,.react-calendar__century-view__decades__decade--neighboringCentury{color:#757575}.react-calendar__year-view .react-calendar__tile,.react-calendar__decade-view .react-calendar__tile,.react-calendar__century-view .react-calendar__tile{padding:2em .5em}.react-calendar__tile{max-width:100%;padding:10px 6.6667px;background:none;text-align:center;font:inherit;font-size:.833em}.react-calendar__tile:disabled{background-color:#f0f0f0;color:#ababab}.react-calendar__month-view__days__day--neighboringMonth:disabled,.react-calendar__decade-view__years__year--neighboringDecade:disabled,.react-calendar__century-view__decades__decade--neighboringCentury:disabled{color:#cdcdcd}.react-calendar__tile:enabled:hover,.react-calendar__tile:enabled:focus{background-color:#e6e6e6}.react-calendar__tile--now{background:#ffff76}.react-calendar__tile--now:enabled:hover,.react-calendar__tile--now:enabled:focus{background:#ffffa9}.react-calendar__tile--hasActive{background:#76baff}.react-calendar__tile--hasActive:enabled:hover,.react-calendar__tile--hasActive:enabled:focus{background:#a9d4ff}.react-calendar__tile--active{background:#006edc;color:#fff}.react-calendar__tile--active:enabled:hover,.react-calendar__tile--active:enabled:focus{background:#1087ff}.react-calendar--selectRange .react-calendar__tile--hover{background-color:#e6e6e6}.calendar-wrapper{margin:20px 0;padding:16px;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.react-calendar{width:100%!important;border:none!important;background:none!important;font-family:inherit!important}.react-calendar__tile{position:relative!important;height:44px!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:.9rem!important;border-radius:4px!important;transition:all .2s!important}.react-calendar__tile:enabled:hover{background-color:#e5e7eb!important}.react-calendar__tile--now{background-color:#2563eb!important;color:#fff!important}.react-calendar__tile--now:enabled:hover{background-color:#1d4ed8!important}.react-calendar__tile.past{background-color:#f3f4f6!important;color:#374151!important}.react-calendar__tile.future{background-color:#f9fafb!important;color:#9ca3af!important;cursor:not-allowed!important}.react-calendar__tile.selected{background-color:#3b82f6!important;color:#fff!important;box-shadow:0 0 0 2px #60a5fa!important}.react-calendar__tile.selected:hover{background-color:#2563eb!important}.react-calendar__tile.completed{background-color:#86efac!important;color:#fff!important}.react-calendar__tile.completed:hover{background-color:#4ade80!important}.react-calendar__tile.solved-with-help{background-color:#fca5a5!important;color:#fff!important}.react-calendar__tile.solved-with-help:hover{background-color:#ef4444!important}.react-calendar__tile.selected .puzzle-number{color:#e5e7eb!important}.react-calendar__navigation{margin-bottom:16px!important}.react-calendar__navigation button{background:none!important;border:1px solid #e5e7eb!important;border-radius:4px!important;color:#374151!important}.react-calendar__navigation button:enabled:hover{background-color:#f3f4f6!important}.react-calendar__navigation button[disabled]{background-color:#f9fafb!important;color:#9ca3af!important}.tile-content{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.puzzle-number{position:absolute;top:2px;right:2px;font-size:.6rem;color:#6b7280}.difficulty-indicator{position:absolute;bottom:2px;left:50%;transform:translate(-50%);width:6px;height:6px;border-radius:50%}.difficulty-indicator.easy{background-color:#22c55e}.difficulty-indicator.medium{background-color:#eab308}.difficulty-indicator.hard{background-color:#ef4444}.difficulty-legend{margin-top:20px;padding-top:16px;border-top:1px solid #e5e7eb}.difficulty-legend h3{font-size:.9rem;color:#4b5563;margin-bottom:12px;font-weight:600}.legend-items{display:flex;flex-direction:column;gap:8px}.legend-item{display:flex;align-items:center;gap:8px;font-size:.8rem;color:#6b7280}.legend-item .difficulty-indicator{position:static;transform:none;width:8px;height:8px}.legend-text strong{color:#374151;font-weight:600}@media screen and (max-width: 768px){.react-calendar__tile{height:36px!important;padding:0!important}.puzzle-number{font-size:.5rem;top:1px;right:1px}.difficulty-indicator{width:4px;height:4px;bottom:1px}.react-calendar__navigation button{padding:5px!important;font-size:.9rem!important}}@media screen and (max-width: 480px){.calendar-wrapper{padding:8px;margin:10px 0}.react-calendar__tile{height:32px!important;font-size:.8rem!important}.legend-items{flex-direction:row;flex-wrap:wrap;justify-content:space-between}.legend-item{width:48%;margin-bottom:5px}}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6;background-color:#fff}#root{width:100%;min-height:100vh}.app{display:flex;flex-direction:column;min-height:100vh}.app-header{width:100%;background-color:#1a1a1a;color:#fff;padding:1.5rem 0;border-bottom:1px solid #2a2a2a}.header-content{max-width:1200px;margin:0 auto;padding:0 20px;text-align:center}.header-content h1{font-size:2.5rem;margin-bottom:.5rem;font-weight:700;letter-spacing:-.5px}.header-content p{font-size:1.1rem;opacity:.8;color:#e0e0e0}.main-content{flex:1;width:100%;max-width:1280px;margin:2rem auto;padding:0 20px;display:flex;justify-content:center;align-items:flex-start;background-color:#fff}.app-footer{width:100%;background-color:#1a1a1a;color:#e0e0e0;padding:1.5rem 0;margin-top:auto;border-top:1px solid #2a2a2a}.footer-content{max-width:1200px;margin:0 auto;padding:0 20px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}@media (max-width: 768px){.footer-content{flex-direction:column;text-align:center}}.footer-disclaimer,.footer-credits{font-size:.9rem;color:#b0b0b0}.footer-content a{color:#fff;text-decoration:none;font-weight:500;transition:all .2s ease;padding-bottom:2px;border-bottom:1px solid transparent}.footer-content a:hover{color:#fff;border-bottom-color:#fff;text-decoration:none}@media (max-width: 768px){.header-content h1{font-size:2rem}.header-content p{font-size:1rem}.main-content{padding:0 10px}}@tailwind base;@tailwind components;@tailwind utilities;*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fff;color:#333}button{font-family:inherit;cursor:pointer}
