@import"https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap";ion-menu ion-content{--background: var(--ion-item-background, var(--ion-background-color, #fff))}ion-menu.md ion-content{--padding-start: 8px;--padding-end: 8px;--padding-top: 20px;--padding-bottom: 20px}ion-menu.md ion-list{padding:20px 0}ion-menu.md ion-note{margin-bottom:30px}ion-menu.md ion-list-header,ion-menu.md ion-note{padding-left:10px}ion-menu.md ion-list#inbox-list{border-bottom:1px solid var(--ion-color-step-150, #d7d8da)}ion-menu.md ion-list#inbox-list ion-list-header{font-size:22px;font-weight:600;min-height:20px}ion-menu.md ion-list#labels-list ion-list-header{font-size:16px;margin-bottom:18px;color:#757575;min-height:26px}ion-menu.md ion-item{--padding-start: 10px;--padding-end: 10px;border-radius:4px}ion-menu.md ion-item.selected{--background: rgba(var(--ion-color-primary-rgb), .14)}ion-menu.md ion-item.selected ion-icon{color:var(--ion-color-primary)}ion-menu.md ion-item ion-icon{color:#616e7e}ion-menu.md ion-item ion-label{font-weight:500}ion-menu.ios ion-content{--padding-bottom: 20px}ion-menu.ios ion-list{padding:20px 0 0}ion-menu.ios ion-note{line-height:24px;margin-bottom:20px}ion-menu.ios ion-item{--padding-start: 16px;--padding-end: 16px;--min-height: 50px}ion-menu.ios ion-item ion-icon{font-size:24px;color:#73849a}ion-menu.ios ion-item .selected ion-icon{color:var(--ion-color-primary)}ion-menu.ios ion-list#labels-list ion-list-header{margin-bottom:8px}ion-menu.ios ion-list-header,ion-menu.ios ion-note{padding-left:16px;padding-right:16px}ion-menu.ios ion-note{margin-bottom:8px}ion-note{display:inline-block;font-size:16px;color:var(--ion-color-medium-shade)}ion-item.selected{--color: var(--ion-color-primary)}.chess-blunders-page{padding:20px;background-color:#f4f4f4;display:grid;grid-template-columns:repeat(1,1fr);gap:20px;justify-items:center}.chess-card{display:flex;flex-direction:column;justify-content:space-between;width:350px}.update-controls{display:flex;align-items:center;padding:10px 0;justify-content:space-between}.update-controls IonLabel{flex:1;padding-right:10px}.update-controls IonInput{flex:2;max-width:50px}.update-controls IonButton{flex:1;max-width:100px;margin-left:10px}.card-content{display:flex;flex-direction:column;align-items:center}.update-controls{display:flex;justify-content:space-between;padding:10px}.moves-container{display:flex;justify-content:space-between;width:100%}.padd-me{padding-left:20px}.chessboard-container{width:280px;height:280px;display:flex;justify-content:center;align-items:center;margin-bottom:10px;margin-top:10px}.blunder-icon{position:absolute;width:20px;height:20px}.highlighted-square{position:absolute;width:35px;height:35px;background-color:#87bbe366;border:1px solid rgba(135,187,227,.5)}.highlighted-square-best-move{position:absolute;width:35px;height:35px;background-color:#98e6a166;border:1px solid rgba(135,187,227,.5)}@media (min-width: 768px){.chess-blunders-page{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1624px){.chess-blunders-page{grid-template-columns:repeat(3,1fr)}}.content-box{padding:20px;display:flex;flex-direction:column;align-items:center;text-align:center;background:white;border-radius:10px;box-shadow:0 4px 6px #0000001a;overflow:hidden}.turn-indicator-container{margin:20px 0;display:flex;justify-content:center;align-items:center}.content-box{display:flex;flex-direction:column;align-items:center;text-align:center;background:white;border-radius:10px;box-shadow:0 4px 6px #0000001a;height:70%}.analysis-page{display:flex;flex-direction:column;align-items:center;padding:10px;width:100%}.analysis-layout{display:flex;flex-direction:column;width:100%;margin-bottom:20px}.chessboard-container{width:100%;max-width:400px;margin:0 auto}.moves-table{width:100%;max-height:400px;overflow-y:auto;margin:20px 0}.pgn-moves ion-item,.pgn-move{font-family:monospace;font-size:14px;width:100%}.engine-moves-section{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;width:100%}.engine-move{width:100%;max-width:120px;aspect-ratio:1;border:1px solid #ccc}.eval-bar-container{height:400px;width:20px;background-color:#fff;margin-right:10px;display:flex;flex-direction:column}.board-and-eval-container{display:flex;flex-direction:row;align-items:center;justify-content:center;width:100%;margin:0 auto}.board-and-moves-container{display:flex;flex-direction:column;width:100%}.variations-chessboards{gap:10px;justify-content:center;margin-top:20px;width:100%}.variation-chessboard{gap:10px;justify-content:center}.score-top,.score-bottom{position:relative;text-align:center;font-size:10px;width:100%}.score-top{top:-75%;color:#fff}.score-bottom{bottom:-75%;color:#000}ion-card{width:100%;margin:10px 0}@media (min-width: 768px){.analysis-layout{flex-direction:row}.board-and-moves-container{flex-direction:row;gap:20px}.moves-table{width:280px;margin:0}.variation-chessboard>div{flex:0 1 calc(33.333% - 20px)}}@media (max-width: 767px){.board-and-eval-container{max-width:100%}.chessboard-container{width:100%;max-width:100%}.eval-bar-container{height:300px}.variation-chessboard>div{flex:0 1 100%}}@media (max-width: 480px){.analysis-page{padding:5px}.moves-table{margin:10px 0}}.loadingContainer{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;margin-top:20px}hr{background-color:#c7c7c7}.ion-page{margin-bottom:20px}--ion-content{transform:none!important}.form-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:20px}.form-title{font-size:1.5rem;color:#3880ff;margin-bottom:20px;text-align:center}.full-center{display:flex;justify-content:center;align-items:center;height:100%;width:100%;position:absolute;top:0;left:0;background-color:#f4f7f6}.content-box{display:flex;flex-direction:column;align-items:center;text-align:center;background:white;border-radius:10px;box-shadow:0 4px 6px #0000001a;overflow:hidden}.game-info{margin:20px 0;font-size:16px;color:#333}.achievement-container{display:flex;flex-wrap:wrap;justify-content:center;margin:5px 0}.achievement-badge{background-color:gold;color:#fff;padding:5px 10px;border-radius:5px;margin:5px;font-size:14px;font-weight:700;box-shadow:0 2px 4px #0003}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.correct-move-animation{animation:pulse 1s ease-in-out}.full-center{font-family:Roboto,sans-serif}.stats-info{text-align:center;margin:5px 0}.turn-info p{font-size:20px;font-weight:700;color:#2c3e50}.score-streak-info p{font-size:18px;color:#34495e}.highlight{color:#e74c3c;font-weight:500}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.stats-info p{animation:fadeIn .5s ease-out}.turn-indicator-container{margin:5px 0;display:flex;justify-content:center}.turn-indicator{width:30px;height:30px;border-radius:50%;border:2px solid #7f8c8d;box-shadow:0 2px 4px #0000001a}.black-turn{background-color:#34495e}.white-turn{background-color:#ecf0f1}.turn-indicator-container{display:flex;justify-content:center;align-items:center}.chess-piece{font-size:36px;display:inline-block;text-shadow:2px 2px 4px rgba(0,0,0,.2);color:#34495e}.eval-bar-container{height:95%;background-color:#fff;margin-right:20px;display:flex;flex-direction:column;width:20px}.content-box{display:flex;flex-direction:column;align-items:center;text-align:center;background:white;border-radius:10px;box-shadow:0 4px 6px #0000001a;height:100%;position:relative}.board-and-eval-container{display:flex;flex-direction:row;align-items:center;justify-content:center;width:100%}.board-and-captures-container{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%}.eval-bar{width:100%;height:70%}.captures-container{display:flex;flex-direction:row;align-items:left;justify-content:left;width:100%;height:100%;padding:10px}.captures-container img{width:20px}.eval-bar-container{height:95%;display:flex;flex-direction:column;width:30px}.eval-bar{width:100%;transition:height .5s ease-out}.score-top{position:relative;top:-75%;text-align:center;color:#fff;font-size:10px}.score-bottom{position:relative;bottom:-75%;font-size:10px;left:0;right:0;text-align:center;color:#000}.controls2{position:absolute;bottom:15px}.flash-animation{animation:flash 1s ease-out}.icon-stats ion-icon{margin-left:10px}.move-number{font-size:18px;font-weight:700;margin-bottom:10px;text-align:center}.modal-content{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center}.modal-content h2{margin-bottom:20px}.modal-content p{margin:10px 0}.modal-content a{color:var(--ion-color-primary)}.modal-content ion-button{margin-top:20px}.deck-modal .modal-wrapper{--height: 70%;--width: 90%;--max-width: 400px;--border-radius: 16px;--box-shadow: 0 4px 16px rgba(0, 0, 0, .12)}.deck-modal .modal-header{--background: #f4f5f8;border-bottom:1px solid #d7d8da}.deck-modal .modal-title{font-size:1.2rem;font-weight:600;color:#333}.deck-modal .close-button{--color: #666}.deck-list{padding:0}.deck-item{--padding-start: 16px;--padding-end: 16px;--min-height: 60px;--border-color: #e0e0e0;--ripple-color: rgba(0, 0, 0, .1)}.deck-item:last-child{--border-color: transparent}.deck-name{font-size:1rem;font-weight:500;color:#333}.loading-spinner{display:flex;justify-content:center;align-items:center;height:100%}.loading-spinner ion-spinner{width:48px;height:48px;--color: #3880ff}:root{--ion-color-primary: #58cc02;--ion-color-secondary: #fff;--ion-color-dark: #3c3c3c;--ion-background-color: #fff;--ion-border-radius: 12px}body{font-family:Nunito,sans-serif}ion-content{--background: #fff}.board-eval-container,.best-moves{max-width:450px;width:100%;margin-left:auto;margin-right:auto;box-sizing:border-box}.play-container{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100%;margin:0 auto;background-color:#fff;max-width:800px;box-shadow:0 0 20px #0000001a}.coach-message{display:flex;align-items:center;justify-content:center;background-color:#f0f0f0;border-radius:var(--ion-border-radius);padding:10px;box-shadow:0 2px 10px #0000001a;max-width:400px;width:100%;margin:20px auto}.coach-avatar{width:40px;height:40px;border-radius:50%;margin-right:10px}.coach-message{display:flex;align-items:center;justify-content:center;background-color:#f0f0f0;border-radius:var(--ion-border-radius);padding:10px;margin-bottom:20px;box-shadow:0 2px 10px #0000001a;width:100%;box-sizing:border-box;max-width:440px}.board-eval-container{display:flex;flex-direction:column;align-items:center;margin-bottom:20px;width:100%;max-width:420px;margin-left:auto;margin-right:auto}.eval-bar{width:95%;height:20px;background-color:#e0e0e0;border-radius:var(--ion-border-radius);overflow:hidden;margin-bottom:15px}.eval-indicator{height:100%;background-color:var(--ion-color-primary);transition:width .3s ease}.chessboard-wrapper{width:100%;max-width:400px;aspect-ratio:1 / 1}ion-menu::part(container){width:80%;max-width:300px}.promotion-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background-color:var(--ion-color-secondary);padding:20px;border-radius:var(--ion-border-radius);box-shadow:0 0 20px #0003;z-index:1000}.promotion-dialog ion-button{font-size:24px;margin:0 10px}.best-moves{margin-top:0;background-color:#f0f0f0;border-radius:var(--ion-border-radius);padding:15px;box-shadow:0 2px 10px #0000001a}.best-moves h4{margin-top:0;margin-bottom:15px;color:var(--ion-color-dark);text-align:center;font-size:1.1em}.move-item{margin-bottom:10px;font-size:.9em;display:flex;flex-wrap:wrap;align-items:center}.move-number,.move,.score{margin-right:5px;display:inline-flex;align-items:center}.variation{width:100%;margin-top:5px;font-size:.85em;color:#999}@media (max-width: 440px){.move-item{font-size:.85em}.variation{font-size:.8em}}@media (prefers-color-scheme: dark){:root{--ion-color-primary: #63b3ed;--ion-color-secondary: #2c2c2c;--ion-color-dark: #ffffff;--ion-background-color: #1e1e1e}body{background-color:var(--ion-background-color);color:var(--ion-color-dark)}ion-content{--background: #1e1e1e}.play-container{background-color:#1e1e1e;box-shadow:0 0 20px #ffffff1a}.coach-message,.best-moves{background-color:#2c2c2c;color:#fff}.eval-bar{background-color:#4a4a4a}.best-moves h4,.move{color:#63b3ed}.score{color:#a0aec0}.variation{color:#718096}.footer-toolbar{--background: #2c2c2c}.promotion-dialog{background-color:#2c2c2c;color:#fff}}.loading-moves{text-align:center;color:#666;font-style:italic;padding:10px}.best-moves{min-height:100px}@keyframes flash{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.flash-animation{animation:flash .5s}.play-container{display:flex;flex-direction:column;height:100%}.page-content{display:flex;flex-direction:column;flex-grow:1;overflow:hidden}.ion-content-wrapper{flex-grow:1;overflow-y:auto}.footer{flex-shrink:0}.chess-content-container{display:flex;flex-direction:column;align-items:center;width:100%;max-width:450px;margin-left:auto;margin-right:auto}ion-footer{--ion-toolbar-background: transparent;box-shadow:none}ion-footer ion-toolbar{--min-height: 44px;--padding-top: 0;--padding-bottom: 0}ion-footer ion-buttons{margin:0}ion-footer ion-button{--padding-start: 8px;--padding-end: 8px;--padding-top: 0;--padding-bottom: 0;height:44px;font-size:.9em}ion-footer .control-buttons{display:flex;justify-content:center;align-items:center}ion-footer .control-buttons ion-button{margin:0 2px}ion-content{--padding-bottom: 0}ion-page{display:flex;flex-direction:column}ion-app{display:flex;flex-direction:column;min-height:100vh}ion-router-outlet{flex:1;display:flex;flex-direction:column}.board-container{display:flex;flex-direction:column;align-items:center;margin:20px 0}.spare-pieces-row{display:flex;justify-content:center;width:100%;margin:10px 0}.spare-pieces-row>div{margin:0 5px}.button-container{display:flex;justify-content:space-between;margin-bottom:20px}.fen-input-container{display:flex;align-items:center;margin-top:20px}.fen-input{flex-grow:1;margin-right:10px;--padding-start: 10px;--padding-end: 10px;--padding-top: 10px;--padding-bottom: 10px;border:1px solid #ccc;border-radius:4px}:root{--ion-background-color: #000000;--ion-background-color-rgb: 0, 0, 0;--ion-text-color: #ffffff;--ion-text-color-rgb: 255, 255, 255}ion-content{--background: #000000}ion-item{--background: #1c1c1d;--color: #ffffff}ion-list{background-color:#000}ion-toolbar{--background: #1f1f1f;--color: #ffffff}ion-card{--background: #1c1c1d;--color: #ffffff}:root{--ion-color-primary: #428cff;--ion-background-color: #000000;--ion-background-color-rgb: 0, 0, 0;--ion-text-color: #ffffff;--ion-text-color-rgb: 255, 255, 255;--ion-border-color: #222222;--ion-item-background: #1c1c1d;--ion-toolbar-background: #1f1f1f;--ion-tab-bar-background: #1f1f1f;--ion-card-background: #1c1c1d}body{background-color:#000;color:#fff}ion-col .pgn-move{--ion-font-size: 14px}ion-item.pgn-move{--ion-min-height: 20px}ion-modal{--ion-padding: 20px}ion-radio.deck-radio-item::part(button){display:none}:root{color-scheme:dark;--ion-color-primary: #428cff;--ion-color-primary-rgb: 66, 140, 255;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #3a7be0;--ion-color-primary-tint: #5598ff;--ion-color-secondary: #50c8ff;--ion-color-secondary-rgb: 80, 200, 255;--ion-color-secondary-contrast: #ffffff;--ion-color-secondary-contrast-rgb: 255, 255, 255;--ion-color-secondary-shade: #46b0e0;--ion-color-secondary-tint: #62ceff;--ion-color-tertiary: #6a64ff;--ion-color-tertiary-rgb: 106, 100, 255;--ion-color-tertiary-contrast: #ffffff;--ion-color-tertiary-contrast-rgb: 255, 255, 255;--ion-color-tertiary-shade: #5d58e0;--ion-color-tertiary-tint: #7974ff;--ion-color-success: #2fdf75;--ion-color-success-rgb: 47, 223, 117;--ion-color-success-contrast: #000000;--ion-color-success-contrast-rgb: 0, 0, 0;--ion-color-success-shade: #29c467;--ion-color-success-tint: #44e283;--ion-color-warning: #ffd534;--ion-color-warning-rgb: 255, 213, 52;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0bb2e;--ion-color-warning-tint: #ffd948;--ion-color-danger: #ff4961;--ion-color-danger-rgb: 255, 73, 97;--ion-color-danger-contrast: #ffffff;--ion-color-danger-contrast-rgb: 255, 255, 255;--ion-color-danger-shade: #e04055;--ion-color-danger-tint: #ff5b71;--ion-color-dark: #f4f5f8;--ion-color-dark-rgb: 244, 245, 248;--ion-color-dark-contrast: #000000;--ion-color-dark-contrast-rgb: 0, 0, 0;--ion-color-dark-shade: #d7d8da;--ion-color-dark-tint: #f5f6f9;--ion-color-medium: #989aa2;--ion-color-medium-rgb: 152, 154, 162;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #86888f;--ion-color-medium-tint: #a2a4ab;--ion-color-light: #222428;--ion-color-light-rgb: 34, 36, 40;--ion-color-light-contrast: #ffffff;--ion-color-light-contrast-rgb: 255, 255, 255;--ion-color-light-shade: #1e2023;--ion-color-light-tint: #383a3e;--ion-background-color: #121212;--ion-background-color-rgb: 18, 18, 18;--ion-text-color: #ffffff;--ion-text-color-rgb: 255, 255, 255;--ion-border-color: #222222;--ion-item-background: #1e1e1e;--ion-toolbar-background: #1f1f1f;--ion-tab-bar-background: #1f1f1f;--ion-card-background: #1e1e1e;--ion-color-step-50: #1e1e1e;--ion-color-step-100: #2a2a2a;--ion-color-step-150: #363636;--ion-color-step-200: #414141;--ion-color-step-250: #4d4d4d;--ion-color-step-300: #595959;--ion-color-step-350: #656565;--ion-color-step-400: #717171;--ion-color-step-450: #7d7d7d;--ion-color-step-500: #898989;--ion-color-step-550: #949494;--ion-color-step-600: #a0a0a0;--ion-color-step-650: #acacac;--ion-color-step-700: #b8b8b8;--ion-color-step-750: #c4c4c4;--ion-color-step-800: #d0d0d0;--ion-color-step-850: #dbdbdb;--ion-color-step-900: #e7e7e7;--ion-color-step-950: #f3f3f3}.ios{--ion-background-color: #000000;--ion-background-color-rgb: 0, 0, 0;--ion-text-color: #ffffff;--ion-text-color-rgb: 255, 255, 255;--ion-item-background: #000000;--ion-card-background: #1c1c1d}.ios ion-modal{--ion-background-color: var(--ion-color-step-100);--ion-toolbar-background: var(--ion-color-step-150);--ion-toolbar-border-color: var(--ion-color-step-250)}.md{--ion-background-color: #121212;--ion-background-color-rgb: 18, 18, 18;--ion-text-color: #ffffff;--ion-text-color-rgb: 255, 255, 255;--ion-border-color: #222222;--ion-item-background: #1e1e1e;--ion-toolbar-background: #1f1f1f;--ion-tab-bar-background: #1f1f1f;--ion-card-background: #1e1e1e}html.ios{--ion-default-font: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Roboto", sans-serif}html.md{--ion-default-font: "Roboto", "Helvetica Neue", sans-serif}html{--ion-default-dynamic-font: -apple-system-body;--ion-font-family: var(--ion-default-font)}body{background:var(--ion-background-color)}body.backdrop-no-scroll{overflow:hidden}html.ios ion-modal.modal-card ion-header ion-toolbar:first-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:first-of-type,html.ios ion-modal ion-footer ion-toolbar:first-of-type{padding-top:6px}html.ios ion-modal.modal-card ion-header ion-toolbar:last-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:last-of-type{padding-bottom:6px}html.ios ion-modal ion-toolbar{padding-right:calc(var(--ion-safe-area-right) + 8px);padding-left:calc(var(--ion-safe-area-left) + 8px)}@media screen and (min-width: 768px){html.ios ion-modal.modal-card:first-of-type{--backdrop-opacity: .18}}ion-modal.modal-default.show-modal~ion-modal.modal-default{--backdrop-opacity: 0;--box-shadow: none}html.ios ion-modal.modal-card .ion-page{border-top-left-radius:var(--border-radius)}.ion-color-primary{--ion-color-base: var(--ion-color-primary, #3880ff) !important;--ion-color-base-rgb: var(--ion-color-primary-rgb, 56, 128, 255) !important;--ion-color-contrast: var(--ion-color-primary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-primary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-primary-shade, #3171e0) !important;--ion-color-tint: var(--ion-color-primary-tint, #4c8dff) !important}.ion-color-secondary{--ion-color-base: var(--ion-color-secondary, #3dc2ff) !important;--ion-color-base-rgb: var(--ion-color-secondary-rgb, 61, 194, 255) !important;--ion-color-contrast: var(--ion-color-secondary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-secondary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-secondary-shade, #36abe0) !important;--ion-color-tint: var(--ion-color-secondary-tint, #50c8ff) !important}.ion-color-tertiary{--ion-color-base: var(--ion-color-tertiary, #5260ff) !important;--ion-color-base-rgb: var(--ion-color-tertiary-rgb, 82, 96, 255) !important;--ion-color-contrast: var(--ion-color-tertiary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-tertiary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-tertiary-shade, #4854e0) !important;--ion-color-tint: var(--ion-color-tertiary-tint, #6370ff) !important}.ion-color-success{--ion-color-base: var(--ion-color-success, #2dd36f) !important;--ion-color-base-rgb: var(--ion-color-success-rgb, 45, 211, 111) !important;--ion-color-contrast: var(--ion-color-success-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-success-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-success-shade, #28ba62) !important;--ion-color-tint: var(--ion-color-success-tint, #42d77d) !important}.ion-color-warning{--ion-color-base: var(--ion-color-warning, #ffc409) !important;--ion-color-base-rgb: var(--ion-color-warning-rgb, 255, 196, 9) !important;--ion-color-contrast: var(--ion-color-warning-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-warning-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-warning-shade, #e0ac08) !important;--ion-color-tint: var(--ion-color-warning-tint, #ffca22) !important}.ion-color-danger{--ion-color-base: var(--ion-color-danger, #eb445a) !important;--ion-color-base-rgb: var(--ion-color-danger-rgb, 235, 68, 90) !important;--ion-color-contrast: var(--ion-color-danger-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-danger-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-danger-shade, #cf3c4f) !important;--ion-color-tint: var(--ion-color-danger-tint, #ed576b) !important}.ion-color-light{--ion-color-base: var(--ion-color-light, #f4f5f8) !important;--ion-color-base-rgb: var(--ion-color-light-rgb, 244, 245, 248) !important;--ion-color-contrast: var(--ion-color-light-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-light-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-light-shade, #d7d8da) !important;--ion-color-tint: var(--ion-color-light-tint, #f5f6f9) !important}.ion-color-medium{--ion-color-base: var(--ion-color-medium, #92949c) !important;--ion-color-base-rgb: var(--ion-color-medium-rgb, 146, 148, 156) !important;--ion-color-contrast: var(--ion-color-medium-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-medium-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-medium-shade, #808289) !important;--ion-color-tint: var(--ion-color-medium-tint, #9d9fa6) !important}.ion-color-dark{--ion-color-base: var(--ion-color-dark, #222428) !important;--ion-color-base-rgb: var(--ion-color-dark-rgb, 34, 36, 40) !important;--ion-color-contrast: var(--ion-color-dark-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-dark-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-dark-shade, #1e2023) !important;--ion-color-tint: var(--ion-color-dark-tint, #383a3e) !important}.ion-page{left:0;right:0;top:0;bottom:0;display:flex;position:absolute;flex-direction:column;justify-content:space-between;contain:layout size style;z-index:0}ion-modal>.ion-page{position:relative;contain:layout style;height:100%}.split-pane-visible>.ion-page.split-pane-main{position:relative}ion-route,ion-route-redirect,ion-router,ion-select-option,ion-nav-controller,ion-menu-controller,ion-action-sheet-controller,ion-alert-controller,ion-loading-controller,ion-modal-controller,ion-picker-controller,ion-popover-controller,ion-toast-controller,.ion-page-hidden{display:none!important}.ion-page-invisible{opacity:0}.can-go-back>ion-header ion-back-button{display:block}html.plt-ios.plt-hybrid,html.plt-ios.plt-pwa{--ion-statusbar-padding: 20px}@supports (padding-top: 20px){html{--ion-safe-area-top: var(--ion-statusbar-padding)}}@supports (padding-top: env(safe-area-inset-top)){html{--ion-safe-area-top: env(safe-area-inset-top);--ion-safe-area-bottom: env(safe-area-inset-bottom);--ion-safe-area-left: env(safe-area-inset-left);--ion-safe-area-right: env(safe-area-inset-right)}}ion-card.ion-color .ion-inherit-color,ion-card-header.ion-color .ion-inherit-color{color:inherit}.menu-content{transform:translateZ(0)}.menu-content-open{cursor:pointer;touch-action:manipulation;pointer-events:none;overflow-y:hidden}.menu-content-open ion-content{--overflow: hidden}.menu-content-open .ion-content-scroll-host{overflow:hidden}.ios .menu-content-reveal{box-shadow:-8px 0 42px #00000014}[dir=rtl].ios .menu-content-reveal{box-shadow:8px 0 42px #00000014}.md .menu-content-reveal,.md .menu-content-push{box-shadow:4px 0 16px #0000002e}ion-accordion-group.accordion-group-expand-inset>ion-accordion:first-of-type{border-top-left-radius:8px;border-top-right-radius:8px}ion-accordion-group.accordion-group-expand-inset>ion-accordion:last-of-type{border-bottom-left-radius:8px;border-bottom-right-radius:8px}ion-accordion-group>ion-accordion:last-of-type ion-item[slot=header]{--border-width: 0px}ion-accordion.accordion-animated>[slot=header] .ion-accordion-toggle-icon{transition:.3s transform cubic-bezier(.25,.8,.5,1)}@media (prefers-reduced-motion: reduce){ion-accordion .ion-accordion-toggle-icon{transition:none!important}}ion-accordion.accordion-expanding>[slot=header] .ion-accordion-toggle-icon,ion-accordion.accordion-expanded>[slot=header] .ion-accordion-toggle-icon{transform:rotate(180deg)}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-previous ion-item[slot=header]{--border-width: 0px;--inner-border-width: 0px}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanding:first-of-type,ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanded:first-of-type{margin-top:0}ion-input input::-webkit-date-and-time-value{text-align:start}.ion-datetime-button-overlay{--width: fit-content;--height: fit-content}.ion-datetime-button-overlay ion-datetime.datetime-grid{width:320px;min-height:320px}.popover-viewport:has(>ion-content){overflow:hidden}@supports not selector(:has(> ion-content)){.popover-viewport{overflow:hidden}}audio,canvas,progress,video{vertical-align:baseline}audio:not([controls]){display:none;height:0}b,strong{font-weight:700}img{max-width:100%}hr{height:1px;border-width:0;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}label,input,select,textarea{font-family:inherit;line-height:normal}textarea{overflow:auto;height:auto;font:inherit;color:inherit}textarea::placeholder{padding-left:2px}form,input,optgroup,select{margin:0;font:inherit;color:inherit}html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}a,a div,a span,a ion-icon,a ion-label,button,button div,button span,button ion-icon,button ion-label,.ion-tappable,[tappable],[tappable] div,[tappable] span,[tappable] ion-icon,[tappable] ion-label,input,textarea{touch-action:manipulation}a ion-label,button ion-label{pointer-events:none}button{padding:0;border:0;border-radius:0;font-family:inherit;font-style:inherit;font-variant:inherit;line-height:1;text-transform:none;cursor:pointer;-webkit-appearance:button}[tappable]{cursor:pointer}a[disabled],button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}html{width:100%;height:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}html:not(.hydrated) body{display:none}html.ion-ce body{display:block}html.plt-pwa{height:100vh}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin:0;padding:0;position:fixed;width:100%;max-width:100%;height:100%;max-height:100%;transform:translateZ(0);text-rendering:optimizeLegibility;overflow:hidden;touch-action:manipulation;-webkit-user-drag:none;-ms-content-zooming:none;word-wrap:break-word;overscroll-behavior-y:none;-webkit-text-size-adjust:none;text-size-adjust:none}html{font-family:var(--ion-font-family)}@supports (-webkit-touch-callout: none){html{font:var(--ion-dynamic-font, 16px var(--ion-font-family))}}a{background-color:transparent;color:var(--ion-color-primary, #3880ff)}h1,h2,h3,h4,h5,h6{margin-top:16px;margin-bottom:10px;font-weight:500;line-height:1.2}h1{margin-top:20px;font-size:1.625rem}h2{margin-top:18px;font-size:1.5rem}h3{font-size:1.375rem}h4{font-size:1.25rem}h5{font-size:1.125rem}h6{font-size:1rem}small{font-size:75%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}.ion-no-padding{--padding-start: 0;--padding-end: 0;--padding-top: 0;--padding-bottom: 0;padding:0}.ion-padding{--padding-start: var(--ion-padding, 16px);--padding-end: var(--ion-padding, 16px);--padding-top: var(--ion-padding, 16px);--padding-bottom: var(--ion-padding, 16px);-webkit-padding-start:var(--ion-padding, 16px);padding-inline-start:var(--ion-padding, 16px);-webkit-padding-end:var(--ion-padding, 16px);padding-inline-end:var(--ion-padding, 16px);padding-top:var(--ion-padding, 16px);padding-bottom:var(--ion-padding, 16px)}.ion-padding-top{--padding-top: var(--ion-padding, 16px);padding-top:var(--ion-padding, 16px)}.ion-padding-start{--padding-start: var(--ion-padding, 16px);-webkit-padding-start:var(--ion-padding, 16px);padding-inline-start:var(--ion-padding, 16px)}.ion-padding-end{--padding-end: var(--ion-padding, 16px);-webkit-padding-end:var(--ion-padding, 16px);padding-inline-end:var(--ion-padding, 16px)}.ion-padding-bottom{--padding-bottom: var(--ion-padding, 16px);padding-bottom:var(--ion-padding, 16px)}.ion-padding-vertical{--padding-top: var(--ion-padding, 16px);--padding-bottom: var(--ion-padding, 16px);padding-top:var(--ion-padding, 16px);padding-bottom:var(--ion-padding, 16px)}.ion-padding-horizontal{--padding-start: var(--ion-padding, 16px);--padding-end: var(--ion-padding, 16px);-webkit-padding-start:var(--ion-padding, 16px);padding-inline-start:var(--ion-padding, 16px);-webkit-padding-end:var(--ion-padding, 16px);padding-inline-end:var(--ion-padding, 16px)}.ion-no-margin{--margin-start: 0;--margin-end: 0;--margin-top: 0;--margin-bottom: 0;margin:0}.ion-margin{--margin-start: var(--ion-margin, 16px);--margin-end: var(--ion-margin, 16px);--margin-top: var(--ion-margin, 16px);--margin-bottom: var(--ion-margin, 16px);-webkit-margin-start:var(--ion-margin, 16px);margin-inline-start:var(--ion-margin, 16px);-webkit-margin-end:var(--ion-margin, 16px);margin-inline-end:var(--ion-margin, 16px);margin-top:var(--ion-margin, 16px);margin-bottom:var(--ion-margin, 16px)}.ion-margin-top{--margin-top: var(--ion-margin, 16px);margin-top:var(--ion-margin, 16px)}.ion-margin-start{--margin-start: var(--ion-margin, 16px);-webkit-margin-start:var(--ion-margin, 16px);margin-inline-start:var(--ion-margin, 16px)}.ion-margin-end{--margin-end: var(--ion-margin, 16px);-webkit-margin-end:var(--ion-margin, 16px);margin-inline-end:var(--ion-margin, 16px)}.ion-margin-bottom{--margin-bottom: var(--ion-margin, 16px);margin-bottom:var(--ion-margin, 16px)}.ion-margin-vertical{--margin-top: var(--ion-margin, 16px);--margin-bottom: var(--ion-margin, 16px);margin-top:var(--ion-margin, 16px);margin-bottom:var(--ion-margin, 16px)}.ion-margin-horizontal{--margin-start: var(--ion-margin, 16px);--margin-end: var(--ion-margin, 16px);-webkit-margin-start:var(--ion-margin, 16px);margin-inline-start:var(--ion-margin, 16px);-webkit-margin-end:var(--ion-margin, 16px);margin-inline-end:var(--ion-margin, 16px)}.ion-float-left{float:left!important}.ion-float-right{float:right!important}.ion-float-start{float:left!important}:host-context([dir=rtl]) .ion-float-start{float:right!important}[dir=rtl] .ion-float-start{float:right!important}@supports selector(:dir(rtl)){.ion-float-start:dir(rtl){float:right!important}}.ion-float-end{float:right!important}:host-context([dir=rtl]) .ion-float-end{float:left!important}[dir=rtl] .ion-float-end{float:left!important}@supports selector(:dir(rtl)){.ion-float-end:dir(rtl){float:left!important}}@media (min-width: 576px){.ion-float-sm-left{float:left!important}.ion-float-sm-right{float:right!important}.ion-float-sm-start{float:left!important}:host-context([dir=rtl]) .ion-float-sm-start{float:right!important}[dir=rtl] .ion-float-sm-start{float:right!important}@supports selector(:dir(rtl)){.ion-float-sm-start:dir(rtl){float:right!important}}.ion-float-sm-end{float:right!important}:host-context([dir=rtl]) .ion-float-sm-end{float:left!important}[dir=rtl] .ion-float-sm-end{float:left!important}@supports selector(:dir(rtl)){.ion-float-sm-end:dir(rtl){float:left!important}}}@media (min-width: 768px){.ion-float-md-left{float:left!important}.ion-float-md-right{float:right!important}.ion-float-md-start{float:left!important}:host-context([dir=rtl]) .ion-float-md-start{float:right!important}[dir=rtl] .ion-float-md-start{float:right!important}@supports selector(:dir(rtl)){.ion-float-md-start:dir(rtl){float:right!important}}.ion-float-md-end{float:right!important}:host-context([dir=rtl]) .ion-float-md-end{float:left!important}[dir=rtl] .ion-float-md-end{float:left!important}@supports selector(:dir(rtl)){.ion-float-md-end:dir(rtl){float:left!important}}}@media (min-width: 992px){.ion-float-lg-left{float:left!important}.ion-float-lg-right{float:right!important}.ion-float-lg-start{float:left!important}:host-context([dir=rtl]) .ion-float-lg-start{float:right!important}[dir=rtl] .ion-float-lg-start{float:right!important}@supports selector(:dir(rtl)){.ion-float-lg-start:dir(rtl){float:right!important}}.ion-float-lg-end{float:right!important}:host-context([dir=rtl]) .ion-float-lg-end{float:left!important}[dir=rtl] .ion-float-lg-end{float:left!important}@supports selector(:dir(rtl)){.ion-float-lg-end:dir(rtl){float:left!important}}}@media (min-width: 1200px){.ion-float-xl-left{float:left!important}.ion-float-xl-right{float:right!important}.ion-float-xl-start{float:left!important}:host-context([dir=rtl]) .ion-float-xl-start{float:right!important}[dir=rtl] .ion-float-xl-start{float:right!important}@supports selector(:dir(rtl)){.ion-float-xl-start:dir(rtl){float:right!important}}.ion-float-xl-end{float:right!important}:host-context([dir=rtl]) .ion-float-xl-end{float:left!important}[dir=rtl] .ion-float-xl-end{float:left!important}@supports selector(:dir(rtl)){.ion-float-xl-end:dir(rtl){float:left!important}}}.ion-text-center{text-align:center!important}.ion-text-justify{text-align:justify!important}.ion-text-start{text-align:start!important}.ion-text-end{text-align:end!important}.ion-text-left{text-align:left!important}.ion-text-right{text-align:right!important}.ion-text-nowrap{white-space:nowrap!important}.ion-text-wrap{white-space:normal!important}@media (min-width: 576px){.ion-text-sm-center{text-align:center!important}.ion-text-sm-justify{text-align:justify!important}.ion-text-sm-start{text-align:start!important}.ion-text-sm-end{text-align:end!important}.ion-text-sm-left{text-align:left!important}.ion-text-sm-right{text-align:right!important}.ion-text-sm-nowrap{white-space:nowrap!important}.ion-text-sm-wrap{white-space:normal!important}}@media (min-width: 768px){.ion-text-md-center{text-align:center!important}.ion-text-md-justify{text-align:justify!important}.ion-text-md-start{text-align:start!important}.ion-text-md-end{text-align:end!important}.ion-text-md-left{text-align:left!important}.ion-text-md-right{text-align:right!important}.ion-text-md-nowrap{white-space:nowrap!important}.ion-text-md-wrap{white-space:normal!important}}@media (min-width: 992px){.ion-text-lg-center{text-align:center!important}.ion-text-lg-justify{text-align:justify!important}.ion-text-lg-start{text-align:start!important}.ion-text-lg-end{text-align:end!important}.ion-text-lg-left{text-align:left!important}.ion-text-lg-right{text-align:right!important}.ion-text-lg-nowrap{white-space:nowrap!important}.ion-text-lg-wrap{white-space:normal!important}}@media (min-width: 1200px){.ion-text-xl-center{text-align:center!important}.ion-text-xl-justify{text-align:justify!important}.ion-text-xl-start{text-align:start!important}.ion-text-xl-end{text-align:end!important}.ion-text-xl-left{text-align:left!important}.ion-text-xl-right{text-align:right!important}.ion-text-xl-nowrap{white-space:nowrap!important}.ion-text-xl-wrap{white-space:normal!important}}.ion-text-uppercase{text-transform:uppercase!important}.ion-text-lowercase{text-transform:lowercase!important}.ion-text-capitalize{text-transform:capitalize!important}@media (min-width: 576px){.ion-text-sm-uppercase{text-transform:uppercase!important}.ion-text-sm-lowercase{text-transform:lowercase!important}.ion-text-sm-capitalize{text-transform:capitalize!important}}@media (min-width: 768px){.ion-text-md-uppercase{text-transform:uppercase!important}.ion-text-md-lowercase{text-transform:lowercase!important}.ion-text-md-capitalize{text-transform:capitalize!important}}@media (min-width: 992px){.ion-text-lg-uppercase{text-transform:uppercase!important}.ion-text-lg-lowercase{text-transform:lowercase!important}.ion-text-lg-capitalize{text-transform:capitalize!important}}@media (min-width: 1200px){.ion-text-xl-uppercase{text-transform:uppercase!important}.ion-text-xl-lowercase{text-transform:lowercase!important}.ion-text-xl-capitalize{text-transform:capitalize!important}}.ion-align-self-start{align-self:flex-start!important}.ion-align-self-end{align-self:flex-end!important}.ion-align-self-center{align-self:center!important}.ion-align-self-stretch{align-self:stretch!important}.ion-align-self-baseline{align-self:baseline!important}.ion-align-self-auto{align-self:auto!important}.ion-wrap{flex-wrap:wrap!important}.ion-nowrap{flex-wrap:nowrap!important}.ion-wrap-reverse{flex-wrap:wrap-reverse!important}.ion-justify-content-start{justify-content:flex-start!important}.ion-justify-content-center{justify-content:center!important}.ion-justify-content-end{justify-content:flex-end!important}.ion-justify-content-around{justify-content:space-around!important}.ion-justify-content-between{justify-content:space-between!important}.ion-justify-content-evenly{justify-content:space-evenly!important}.ion-align-items-start{align-items:flex-start!important}.ion-align-items-center{align-items:center!important}.ion-align-items-end{align-items:flex-end!important}.ion-align-items-stretch{align-items:stretch!important}.ion-align-items-baseline{align-items:baseline!important}.ion-hide,.ion-hide-up,.ion-hide-down{display:none!important}@media (min-width: 576px){.ion-hide-sm-up{display:none!important}}@media (max-width: 575.98px){.ion-hide-sm-down{display:none!important}}@media (min-width: 768px){.ion-hide-md-up{display:none!important}}@media (max-width: 767.98px){.ion-hide-md-down{display:none!important}}@media (min-width: 992px){.ion-hide-lg-up{display:none!important}}@media (max-width: 991.98px){.ion-hide-lg-down{display:none!important}}@media (min-width: 1200px){.ion-hide-xl-up{display:none!important}}@media (max-width: 1199.98px){.ion-hide-xl-down{display:none!important}}.dashboard-content{--background: #f4f5f8;font-family:Roboto,sans-serif;color:#333;padding:10px}.dashboard-header{background:linear-gradient(135deg,#4a90e2,#63b3ed);color:#fff;text-align:center;margin-left:10px;margin-right:10px;height:100px}.dashboard-header h1{margin-bottom:10px;font-size:24px}.streak-container{display:flex;align-items:center;justify-content:center}.streak-icon{font-size:24px;margin-right:10px;color:gold}.streak-count{font-size:28px;font-weight:700;margin-right:5px}.streak-label{font-size:14px}.dashboard-section{padding:20px;background:white;margin:10px;border-radius:10px;box-shadow:0 4px 6px #0000001a;color:#333}.stats-section{padding:0;margin:0;border-radius:10px;box-shadow:0 4px 6px #0000001a;color:#333}.stat-card{background:white;padding:15px;border-radius:10px;box-shadow:0 2px 4px #0000001a;text-align:center;color:#333}.stat-card h4{color:#4a90e2;margin-bottom:10px}.chess-games-today{display:flex;align-items:center;justify-content:center;background:white;padding:15px;margin:20px;border-radius:10px;box-shadow:0 2px 4px #0000001a;color:#333}.chart-container{height:300px;margin-top:20px}.dashboard-content{--background: #1e1e1e;color:#fff}.dashboard-section,.stat-card,.chess-games-today{background:#2c2c2c;color:#fff}.stat-card h4{color:#63b3ed}.practice-square{background-color:#4a4a4a}.practice-square.practiced{background-color:#2e7d32}.chess-games-today{display:flex;align-items:center;justify-content:center;background:white;padding:15px;margin:20px;border-radius:10px;box-shadow:0 2px 4px #0000001a}.chess-games-icon{font-size:24px;color:#4a90e2;margin-right:10px}.practice-button{margin:10px;padding-top:0;--background: #4a90e2;--background-activated: #3a7bc2;font-weight:700;font-size:16px}.practice-history-grid{display:grid;grid-template-columns:repeat(30,1fr);gap:8px}.practice-square{width:100%;padding-bottom:100%;background-color:#e0e0e0;border-radius:2px;transition:transform .3s ease;animation:fadeIn .5s ease-out forwards;opacity:0}.practice-square.practiced{background-color:#4caf50}.practice-square:hover{transform:scale(1.1)}@keyframes fadeIn{to{opacity:1}}.stat-card{padding:15px;border-radius:10px;box-shadow:0 2px 4px #0000001a;text-align:center;width:100%}.stat-icon{font-size:32px;color:#4a90e2;margin-bottom:10px}@media (prefers-color-scheme: dark){:root{--ion-color-primary: #63b3ed;--ion-color-secondary: #2c2c2c;--ion-color-dark: #ffffff;--ion-background-color: #1e1e1e}body{background-color:var(--ion-background-color);color:var(--ion-color-dark)}ion-content{--background: #1e1e1e}.play-container{background-color:#1e1e1e;box-shadow:0 0 20px #ffffff1a}.coach-message,.best-moves{background-color:#2c2c2c;color:#fff}.eval-bar{background-color:#4a4a4a}.best-moves h4,.move{color:#63b3ed}.score{color:#a0aec0}.variation{color:#718096}.footer-toolbar{--background: #2c2c2c}.promotion-dialog{background-color:#2c2c2c;color:#fff}.last-update{font-size:.8em;color:white text-align: center;margin-top:8px}ion-refresher{z-index:1;background:transparent}.dashboard-header{position:relative;z-index:0;padding-top:16px;padding-bottom:16px;border-radius:10px;margin-top:45px}ion-refresher-content{background:transparent}.refresher-pulling-text,.refresher-refreshing-text{background:transparent;color:var(--ion-color-medium)}.modal-content{padding:20px;height:50%}.modal-content h2{margin-bottom:10px;color:var(--ion-color-primary)}.modal-content p{margin-bottom:20px;color:var(--ion-color-medium)}ion-modal ion-toolbar{--background: var(--ion-background-color)}ion-modal ion-content{--background: var(--ion-background-color)}.username-modal{--height: 20%;--width: 90%;--border-radius: 16px;--box-shadow: 0 10px 15px -3px rgb(0 0 0 / .1)}.username-modal ion-content{--padding-top: 10px;--padding-bottom: 10px}.username-modal ion-toolbar{--min-height: 44px}.username-modal ion-title{font-size:16px}.username-modal ion-item{--padding-start: 0;--inner-padding-end: 0}.username-modal ion-input{margin-top:8px}.button-username{margin-top:20px;width:100%}.danger-streak{animation:pulse 1.5s infinite;background-color:#ff00001a;border-radius:11px;padding:8px 16px 5px}@keyframes pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.8}to{transform:scale(1);opacity:1}}}.chart-container.clickable{cursor:pointer;transition:opacity .2s}.chart-container.clickable:hover{opacity:.8}.chart-modal{--height: 100%;--width: 100%}.fullscreen-chart-container{height:80vh;width:100%;padding:16px}@media screen and (orientation: landscape){.chart-modal{--width: 100%;--height: 100%}.fullscreen-chart-container{height:calc(100vh - 57px)}}.prediction-card .prediction-main{font-size:2.5rem;font-weight:700;margin:8px 0;color:var(--ion-color-primary)}.prediction-card .prediction-subtext{font-size:1rem;font-weight:400;color:var(--ion-color-dark)}.prediction-card p{margin:4px 0;font-size:.9rem;color:var(--ion-color-medium)}.deck-progress-bar{height:8px;border-radius:4px;overflow:hidden}.deck-progress-label{position:absolute;right:10px;font-size:.8em;color:#666;padding:2px 6px;border-radius:10px;transition:all .3s ease}.deck-progress-container:hover .deck-progress-label{background-color:#ffffffe6;box-shadow:0 1px 3px #0000001a}.deck-progress-bar::part(progress){background:linear-gradient(to right,#4caf50,#8bc34a)}.conflicts-alert{--max-width: 90%;--width: 600px}.conflicts-alert .alert-message{white-space:pre-wrap;font-family:monospace;max-height:60vh;overflow-y:auto}.conflicts-container{padding:16px}.conflicts-text{background:#f5f5f5;padding:16px;border-radius:8px;margin:16px 0;white-space:pre-wrap;font-family:monospace;overflow-x:auto;-webkit-user-select:all;user-select:all}.conflicts-buttons{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}@media (max-width: 768px){.conflicts-buttons{flex-direction:column}.conflicts-buttons ion-button{width:100%}}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.deck-header{display:flex;align-items:center;gap:12px;width:100%;flex-wrap:nowrap}ion-label{width:100%!important;flex:1!important}.deck-container{width:100%;display:flex;flex-direction:column;gap:12px;padding:8px 0}.deck-header{display:flex;align-items:center;gap:12px;width:100%}.decklist-deck-name{margin:0;font-size:.9em;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.premium-badge{flex-shrink:0;display:inline-flex;align-items:center;padding:4px 8px}.premium-badge ion-icon{margin-right:4px}.deck-metadata{display:flex;flex-direction:column;gap:8px;width:100%}.deck-progress-container{width:100%;position:relative;height:24px;display:flex;align-items:center}.deck-progress-bar{width:calc(100% - 110px);height:8px;border-radius:4px;overflow:hidden}.deck-progress-label{position:relative;margin-left:35px;color:var(--ion-color-medium);background-color:var(--ion-background-color);padding:2px 6px;border-radius:10px;white-space:nowrap;right:0}.deck-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:4px}.padme{padding:8px}.deck-actions ion-button{--padding-start: 8px;--padding-end: 8px}.lines-count{padding:6px 12px;border-radius:12px}@media (max-width: 576px){.deck-container{padding:4px 0}.deck-actions ion-button{--padding-start: 4px;--padding-end: 4px}}.preview-line-detailed{margin-bottom:20px;padding:10px;border:1px solid #ddd;border-radius:8px}.preview-content{max-width:100%;overflow-x:hidden}.padme{padding:20px}.preview-line-detailed .moves{margin-top:10px;font-family:monospace}--ion-content{transform:none!important;border-radius:0!important}ion-content{--ion-background-color: #1e1e1e;--ion-background-color-rgb: 30, 30, 30;border-radius:0!important}.content-box{background-color:#1e1e1e;border-radius:0!important}.board-container2{background-color:#1e1e1e}.stats-container{border-radius:15px;padding:15px;box-shadow:0 4px 6px #0000001a;min-width:80%;width:100%;max-width:600px;flex:0 0 auto;margin:10px auto}.stats-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.stats-header h3{margin:0;color:#333;font-size:1.2em}.trophy-icon{font-size:24px;color:gold}.progress-container{margin-bottom:15px;position:relative;background-color:#1e1e1e}.controls3{position:fixed;bottom:35px;left:0;right:0;display:flex;justify-content:center;padding:15px;z-index:1000;height:60px;background:none}.success-progress{--progress-background: linear-gradient(to right, #4caf50, #8bc34a);height:10px;border-radius:5px;text-align:left}.progress-label{position:absolute;right:0;top:-20px;font-size:.9em;color:#333}.stats-details{display:flex;justify-content:space-around}.stat-item{display:flex;flex-direction:column;align-items:center}.stat-icon{font-size:24px;margin-bottom:5px}.stat-icon.flame{color:#ff5722}.stat-icon.star{color:#ffc107}.stat-value{font-size:1.2em;font-weight:700;color:#333}.stat-label{font-size:.8em;color:#666}.full-center{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;height:100%;width:100%;padding:0;overflow:hidden}.content-box{display:flex;flex-direction:column;align-items:center;width:100%;height:100%}.board-and-eval-container{display:flex;flex-direction:column;align-items:center;width:100%;margin-bottom:10px}.chessboard2{max-width:700px;margin:0 auto}.chess-container{display:flex;flex-direction:column;height:100vh;width:100%;padding:10px;box-sizing:border-box}.board-container2{display:flex;justify-content:center;align-items:center;width:100%;position:fixed;box-sizing:border-box;margin:auto;transform:none!important}.flashcard-container{position:relative;width:100%;height:100%;touch-action:none;background-color:#1e1e1e;transform:none!important}.flashcard{position:absolute;width:100%;height:100%;transition:transform .3s ease-out;touch-action:none}.flashcard.swiping{transition:none}.flashcard.exit-left{transform:translate(-100%) rotate(-10deg);opacity:0}.flashcard.exit-right{transform:translate(100%) rotate(10deg);opacity:0}.flashcard.enter{transform:translate(0);opacity:1}.flashcard-container{touch-action:pan-y pinch-zoom;-webkit-user-select:none;user-select:none;width:100%;position:relative;will-change:transform}.swipe-indicator{position:absolute;top:50%;font-size:24px;color:#0003;pointer-events:none}.swipe-indicator.left{left:20px}.swipe-indicator.right{right:20px}.progress-dots{position:relative;z-index:1;background:rgba(255,255,255,.9);border-radius:20px;padding:8px 16px;margin-bottom:16px;box-shadow:0 2px 4px #0000001a}.progress-bar-container{transition:all .3s ease}@media screen and (min-width: 601px){.board-container2{bottom:100px}.controls{background:rgba(30,30,30,.8)}}@media screen and (max-width: 600px){.board-container2{position:fixed;bottom:140px}}@media screen and (min-width: 580px) and (max-width: 680px){.board-container2{padding:0 20px;box-sizing:border-box;position:fixed;margin:0 auto}.chessboard2{max-width:700px;margin:0 auto}}@media screen and (max-width: 500px){.controls ion-button{--padding-start: 8px;--padding-end: 8px}.progress-dots{padding:8px}.speed-control{width:98vw}}@media screen and (max-width: 480px){.controls ion-button{--padding-end: 8px}.speed-control{width:98vw}}.board-container2,.react-chessboard2{touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.move-feedback{width:60%;margin:50px auto auto;color:#fff;background-color:#2c2c2c}.move-warning{margin:10px 0;padding:8px 12px;border-radius:4px;animation:fadeIn .3s ease-in}.move-warning.danger{border-left:4px solid #ff4444}.move-warning.warning{border-left:4px solid #ffa500}.move-warning.info{background-color:#e6f3ff;border-left:4px solid #3498db}.warning-message{font-weight:500;margin-bottom:4px}.mistake-hint{font-size:.9em;color:#666;font-style:italic}.move-stats{font-size:.9em;color:#666;margin-top:4px}.progress-dots ion-icon{transition:all .3s ease}.progress-dots ion-icon:hover{transform:scale(1.2)}.progress-bar-container{width:90%;max-width:400px;margin:80px auto 10px;padding:0}.progress-bar-segments{display:flex;width:100%;height:6px;gap:4px}.progress-segment{flex:1;height:100%;border-radius:3px;background-color:#444;transition:transform .2s ease-out,background-color .2s ease-out}.progress-segment.correct{background-color:var(--ion-color-success)}.progress-segment.incorrect{background-color:var(--ion-color-danger)}.progress-segment.active{transform:scaleY(1.8);background-color:var(--ion-color-primary-tint)}.study-layout-container{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;height:100%;width:100%;overflow-y:auto;overflow-x:hidden}.study-info-panel{display:flex;flex-direction:column;align-items:center;width:100%;padding:0 10px;box-sizing:border-box;position:fixed;bottom:0;left:0;right:0}.move-feedback{width:90%;max-width:400px;margin:10px auto}@media screen and (min-width: 768px) and (orientation: landscape){.study-layout-container{flex-direction:row;align-items:center;justify-content:center;gap:20px;padding:20px;box-sizing:border-box}.controls3{position:relative;bottom:unset}.board-container2{position:relative!important;bottom:auto!important;width:auto!important;transform:none!important;flex:0 0 auto;height:100%;margin:0;display:flex;align-items:center;justify-content:center}.study-info-panel{position:relative!important;bottom:auto!important;flex:1;height:100%;justify-content:center;padding:0 20px}.move-feedback{width:100%}}.landscape-container{display:flex;flex-direction:row;height:100%;width:100%;padding:20px;gap:20px;box-sizing:border-box}.landscape-board-wrapper{flex:0 0 auto;display:flex;align-items:center;justify-content:center;height:100%;margin-right:10px}.landscape-container .board-container2{position:relative;bottom:auto;width:auto;height:auto;margin:0}.landscape-panel-wrapper{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100%;min-width:0;gap:16px}.landscape-panel-wrapper .progress-bar-container,.landscape-panel-wrapper .move-feedback{width:100%;max-width:400px;margin:0}.landscape-panel-wrapper .move-progress-dots{position:relative;bottom:auto;margin:0}ion-content{--ion-background-color: #1e1e1e;--ion-background-color-rgb: 30, 30, 30;border-radius:0!important;transform:none!important}ion-content::part(scroll){scrollbar-width:none;-ms-overflow-style:none}ion-content::part(scroll)::-webkit-scrollbar{display:none}.content-container{display:flex;flex-direction:column;height:100vh;position:relative;align-items:center}.progress-dots-container-flash{position:fixed;top:60px;left:50%;width:50%;max-width:300px;background:rgba(30,30,30,.9);z-index:100;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none}.progress-dots-flash{position:fixed;top:60px;left:0;right:0;display:flex;justify-content:center;align-items:center;padding:16px;background:rgba(30,30,30,.9);z-index:100;overflow-x:auto;max-width:300px;margin:0 auto}.progress-dots-inner{display:flex;justify-content:flex-start;gap:8px;min-width:min-content}.progress-dots-flash::-webkit-scrollbar{display:none}.progress-dot{flex:0 0 auto;display:flex;align-items:center;justify-content:center;height:25px}.progress-dot ion-icon{transition:all .3s ease;vertical-align:middle}.fade-indicator{position:absolute;top:0;bottom:0;width:30px;pointer-events:none;z-index:1}.fade-indicator.left{left:0;background:linear-gradient(to right,rgba(30,30,30,.9) 0%,transparent 100%)}.fade-indicator.right{right:0;background:linear-gradient(to left,rgba(30,30,30,.9) 0%,transparent 100%)}.speed-control{position:fixed;top:190px;left:50%;transform:translate(-50%);padding:16px;z-index:100;display:flex;justify-content:center;width:min(95vw,550px)}.speed-control ion-range{width:100%}.board-container{position:fixed;bottom:120px;left:50%;transform:translate(-50%);display:flex;justify-content:center;align-items:center;padding:16px;width:min(95vw,550px)}.chessboard{aspect-ratio:1;display:flex;justify-content:center}.controls{position:fixed;bottom:60px;left:0;right:0;display:flex;justify-content:center;align-items:center;padding:16px;background:rgba(30,30,30,.9);z-index:100;height:70px}.loading-container{display:flex;justify-content:center;align-items:center;height:100vh}.error-container,.no-deck-container{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100vh;padding:20px;text-align:center}ion-modal{--border-radius: 16px}ion-modal ion-toolbar{--background: var(--ion-background-color);--color: var(--ion-text-color)}ion-modal ion-content{--background: var(--ion-background-color)}.controls ion-button{margin:0 4px}ion-range{--bar-background: rgba(255, 255, 255, .1);--bar-background-active: var(--ion-color-primary);--knob-background: var(--ion-color-primary);--pin-background: var(--ion-color-primary)}@media screen and (min-height: 700px){.board-container,.speed-control{width:550px}}@media screen and (max-height: 800px){.speed-control{top:120px}}@media screen and (max-height: 600px){.controls{height:60px}.board-container{bottom:80px}}@media screen and (max-width: 550px){.controls ion-button{--padding-start: 8px;--padding-end: 8px}.progress-dots-container{width:80%}.board-container{padding:8px;display:flex;justify-content:center}.speed-control{width:98vw}.chessboard{margin:0 auto}}.pgn-landscape-wrapper{display:flex;flex-direction:row;align-items:center;width:100%;padding:20px;gap:20px;box-sizing:border-box;height:fit-content;min-height:100%}.pgn-landscape-board-col{flex:0 0 auto;display:flex;align-items:center;justify-content:center}.pgn-landscape-panel-col{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:24px;padding:0 16px;box-sizing:border-box;min-height:100%}.pgn-landscape-wrapper .board-container{position:relative;bottom:auto;left:auto;transform:none;width:auto;height:auto;padding:0;margin:0}.pgn-landscape-wrapper .progress-dots-flash{position:relative;top:auto;left:auto;right:auto;transform:none;width:100%;max-width:450px;margin:0;padding:0;background:transparent}.pgn-landscape-wrapper .progress-dots-inner{flex-wrap:wrap;justify-content:center}.pgn-landscape-wrapper .speed-control{position:relative;top:auto;left:auto;transform:none;width:100%;max-width:450px;margin:0;padding:0}.pgn-landscape-wrapper .controls{position:relative;bottom:auto;left:auto;right:auto;width:100%;max-width:450px;background:transparent;padding:0;height:auto;flex-wrap:wrap;justify-content:center}.modern-header{background:#1a1a1a;border-bottom:2px solid rgba(255,255,255,.1);box-shadow:0 4px 15px #0000004d}.transparent-toolbar{--background: transparent;--border-width: 0}.header-content{padding:16px;display:flex;justify-content:space-between;align-items:center}.header-title h1{font-size:1.5rem;font-weight:600;color:#fff;margin:0 0 12px;letter-spacing:.5px}.platform-badges{display:flex;gap:12px}.platform-badge{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:8px;font-size:.9rem;font-weight:500;transition:all .2s ease;border:1px solid rgba(255,255,255,.1)}.platform-badge.chess-com{background:rgba(127,166,80,.15);color:#7fa650}.platform-badge.lichess{background:rgba(191,129,29,.15);color:#bf811d}.platform-badge:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003}.platform-badge img{width:18px;height:18px;opacity:.9}.header-actions{display:flex;align-items:center}.refresh-button{--color: #ffffff;--border-radius: 8px;--padding-start: 16px;--padding-end: 16px;height:38px;font-weight:500;transition:all .2s ease}.refresh-button:hover{--background: rgba(255, 255, 255, .1);transform:translateY(-1px)}.refresh-button ion-icon{margin-right:8px}.games-grid,ion-grid{width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;--ion-grid-padding: 0;--ion-grid-column-padding: 0;background:#1e1e1e}ion-row,.game-row{width:100%!important;margin:0!important;padding:0!important;display:flex!important;justify-content:stretch!important;align-items:center!important}.header-row{background:#2d2d2d;border-bottom:2px solid #444;padding:12px 0}.game-row{background-color:#1e1e1e;color:#fff;border-bottom:1px solid #333;position:relative;flex-wrap:nowrap!important;transition:background-color .2s ease}.game-row:hover{background-color:#ffffff0d;cursor:pointer}.game-row.won{background-color:#00ff001a!important}.game-row.lost{background-color:#ff00001a!important}.header-cell{display:flex;align-items:center;gap:8px;color:#fff;font-weight:500;padding:8px 12px}.header-cell ion-icon{font-size:1.2rem;color:#888}.game-cell{padding:12px;display:flex;align-items:center}.date-col{min-width:80px!important;flex:2!important}.platform-col{min-width:90px!important;flex:2!important}.board-col{min-width:90px!important;flex:2!important;position:relative}.opponent-col{min-width:120px!important;flex:3!important}.analysis-col{min-width:100px!important;flex:3!important}.platform-indicator{padding:4px 8px;border-radius:12px;font-size:.85rem;text-transform:capitalize}.platform-indicator[data-platform="chess.com"]{background:rgba(127,166,80,.2);color:#7fa650}.platform-indicator[data-platform=lichess]{background:rgba(191,129,29,.2);color:#bf811d}.board-wrapper{position:relative;width:80px;height:80px;margin:8px auto}.analysis-stats{display:flex!important;flex-direction:column!important;align-items:center!important;gap:4px!important;padding:4px 0!important;width:100%!important}.accuracy-main{font-size:.9em!important;font-weight:700!important}.analysis-details{display:flex!important;gap:4px!important;flex-wrap:wrap!important;justify-content:center!important}.analysis-badge{font-size:.7em;padding:2px 4px;min-height:16px;height:auto}.game-details-modal{--height: 90%;--width: 90%;--border-radius: 8px}.modal-content{padding:20px;background:#1e1e1e;color:#fff;height:100%;display:flex;flex-direction:column;gap:20px}.modal-board{display:flex;justify-content:center;margin-bottom:20px}.move-controls{display:flex;flex-direction:column;align-items:center;gap:10px;width:90%}.move-slider{width:100%;max-width:500px;--bar-background: #333;--bar-background-active: #666;--knob-background: #fff;--bar-height: 4px;padding:0 8px}.moves-list{flex:1;overflow-y:auto;padding:10px;background:#2d2d2d;border-radius:4px;line-height:1.5;white-space:normal}.move{display:inline-block;padding:2px 4px;margin:0 2px;cursor:pointer;-webkit-user-select:none;user-select:none}.move:hover{background:#444;border-radius:2px}.current-move{background:#555;border-radius:2px}.loading-spinner{padding:8px 16px}.loading-spinner ion-spinner{--color: #7fa650;width:24px;height:24px}@media (max-width: 768px){.header-content{padding:12px}.header-title h1{font-size:1.2rem;margin-bottom:8px}.platform-badge span{display:none}.platform-badge{padding:6px}.refresh-button span{display:none}.game-cell{padding:8px;font-size:.9rem}.header-cell span{display:none}.date-col{min-width:60px!important}.platform-col,.board-col{min-width:70px!important}.opponent-col{min-width:100px!important}.game-details-modal{--height: 100%;--width: 100%;--border-radius: 0}}@media (max-width: 480px){.date-col{min-width:50px!important}.platform-col{min-width:60px!important}.board-col{min-width:50px!important}.opponent-col{min-width:80px!important}.game-cell{font-size:.75em;padding:4px;text-align:center}.board-wrapper{width:50px;margin:0 auto;height:auto}}@media (max-width: 450px){.opponent-col{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-col{margin:0 8px!important;min-width:100px!important}}@media (max-width: 1200px){ion-content::part(scroll){padding-bottom:50px}}ion-col ion-label{width:100%;margin:0;padding:8px}ion-grid{--ion-grid-padding: 0}ion-row{align-items:center}ion-col ion-button{width:100%}.header-row{font-weight:700;background-color:var(--ion-color-light)}.header-row ion-col{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:8px}ion-col{display:flex;align-items:center}ion-select{width:100%;max-width:100%;--padding-start: 8px;--padding-end: 8px}.chessboard-container-vi{width:fit-content;margin:0 auto}.feature-item ion-icon{font-size:24px}.premium-button{margin-top:20px;--background: linear-gradient(45deg, #FFD700, #FFA500);--background-activated: linear-gradient(45deg, #FFA500, #FFD700)}.price{color:var(--ion-color-success);font-weight:700}.centered-container{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;text-align:center}.deck-card{display:flex;flex-direction:column;justify-content:space-between;height:100%;border:1px solid var(--ion-color-step-200, #cccccc);border-radius:12px}.deck-info{display:flex;justify-content:space-around;padding:8px 0;border-top:1px solid var(--ion-color-step-150, #e0e0e0);border-bottom:1px solid var(--ion-color-step-150, #e0e0e0);margin-bottom:16px}.info-item{display:flex;align-items:center;gap:8px;font-size:1.1em}.info-item ion-icon{font-size:1.4em}.landscape-container-ea{display:flex;flex-direction:row;align-items:flex-start;height:fit-content;width:100%;padding:20px;gap:20px;box-sizing:border-box;overflow:hidden}.landscape-board-wrapper-ea{flex:0 0 auto;display:flex;align-items:center;justify-content:center;height:100%}.landscape-container-ea .chessboard2{position:relative;bottom:auto;width:auto;height:auto;margin:0}.landscape-panel-wrapper-ea{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;gap:16px;overflow-y:auto;padding-right:10px}.landscape-panel-wrapper-ea .panel-item{width:100%;max-width:400px;margin-left:auto;margin-right:auto}.landscape-panel-wrapper-ea ion-card.panel-item{margin-top:0;margin-bottom:0}main-table{-webkit-padding-start:0!important;-webkit-padding-end:0!important}ion-content.table,ion-content.table::part(scroll),.inner-scroll-table,.scroll-y-table,main-table{padding:0!important;margin:0!important}@media (max-width: 780px){ion-content::part(scroll){padding-bottom:60px}}@media (max-width: 1200px){ion-content::part(scroll){padding-bottom:130px}}.login-page-content{--background: linear-gradient(to bottom, var(--ion-color-light-tint), var(--ion-color-light))}.login-page-content .center-container{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:16px}.login-card{width:100%;max-width:400px;--background: var(--ion-card-background, #fff);box-shadow:0 8px 24px #0000001a;border-radius:16px}.login-card ion-card-title{font-size:1.8rem;font-weight:700;color:var(--ion-color-primary)}.login-card ion-card-subtitle{font-size:1rem;color:var(--ion-color-medium-shade);margin-top:8px}.login-card ion-list{padding-top:0;padding-bottom:0}.login-card ion-item{--border-color: transparent;--background: var(--ion-color-light-tint);border-radius:8px;margin-bottom:16px}.login-card ion-button{--border-radius: 8px;height:48px;font-weight:700}.path-container{position:relative;display:flex;flex-direction:column;align-items:center;max-width:400px;margin:50px auto 0;padding:48px 0}.path-container:before{content:"";position:absolute;z-index:1;background-color:var(--ion-color-medium);width:6px;left:50%;transform:translate(-50%);top:75px;height:calc(100% - 150px)}.level-node-wrapper{position:relative;width:100%;display:flex;margin-bottom:80px}.level-node-wrapper:last-child{margin-bottom:0}.level-node-wrapper:after{content:"";position:absolute;z-index:1;background-color:var(--ion-color-medium);height:6px;top:72px;transition:background-color .5s ease}.level-node-wrapper.node-even{justify-content:flex-start;padding-left:20px}.level-node-wrapper.node-odd{justify-content:flex-end;padding-right:20px}.level-node-wrapper.node-even:after{left:95px;width:calc(50% - 95px)}.level-node-wrapper.node-odd:after{right:95px;width:calc(50% - 95px)}.level-node-wrapper.completed:after{background-color:var(--ion-color-success)}.level-node{width:150px;height:150px;border-radius:50%;background-color:var(--ion-color-light-tint);border:6px solid var(--ion-color-medium);display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;cursor:pointer;transition:all .3s ease-in-out;text-align:center;padding:8px;box-shadow:0 4px 10px #0000001a;z-index:2;box-sizing:border-box}.chessboard-container3{width:120px;height:120px;border-radius:50%;overflow:hidden;display:flex;justify-content:center;align-items:center;background:#e0e0e0}.level-title{position:absolute;bottom:-30px;font-size:.9em;font-weight:600;color:var(--ion-text-color);width:200px}.level-stars{position:absolute;top:-25px;color:var(--ion-color-warning);font-size:1.2em}.level-node.locked{filter:grayscale(1);opacity:.7;cursor:not-allowed;border-color:var(--ion-color-step-400)}.level-node.locked .level-title{color:var(--ion-color-step-600)}.lock-icon{font-size:60px;color:var(--ion-color-medium-shade)}.level-node.completed{border-color:var(--ion-color-success);background-color:var(--ion-color-success-tint)}.level-node.current{border-color:var(--ion-color-primary);transform:scale(1.05);animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(var(--ion-color-primary-rgb),.7)}70%{box-shadow:0 0 0 15px rgba(var(--ion-color-primary-rgb),0)}to{box-shadow:0 0 0 0 rgba(var(--ion-color-primary-rgb),0)}}.pgn-viewer-container{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;width:100%}.chessboard-container2{margin-bottom:20px}.controls-container-pgnviewer{width:90%;max-width:500px;margin:0 auto}.center-widget{display:flex;justify-content:center;align-items:center;width:100%}.move-counter{text-align:center;font-size:.9em;color:var(--ion-color-medium-shade)}.navigation-buttons{display:flex;justify-content:center;align-items:center;width:100%}.pgn-text-display{width:90%;max-width:500px;margin-top:15px;padding:10px;background-color:var(--ion-color-light-tint);border-radius:8px;font-family:monospace;text-align:left;white-space:normal}.move-number2{color:var(--ion-color-medium-shade)}.pgn-move{padding:1px;border-radius:4px;transition:all .2s ease-in-out}.pgn-move.current-move{background-color:var(--ion-color-primary);color:var(--ion-color-primary-contrast);font-weight:700}.pgn-move.hard-move{background-color:#ffc409;color:#000}.pgn-move.very-hard-move{background-color:#eb445a;color:#fff}.table-container{width:100%;font-size:.9em}.table-header,.table-row{display:flex;align-items:center;padding:10px 5px;border-bottom:1px solid var(--ion-color-step-150, #e0e0e0)}.table-header{font-weight:700;background-color:var(--ion-color-light-tint)}.table-row{cursor:pointer}.table-row:hover{background-color:var(--ion-color-light-shade)}.table-cell{padding:0 5px;box-sizing:border-box}.table-cell.pgn{flex:4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-cell.mastery{flex:1;display:flex;justify-content:center}.table-cell.sortable{cursor:pointer;display:flex;align-items:center}.table-cell.sortable ion-icon{margin-left:4px}.mastery-dot{width:15px;height:15px;border-radius:50%}.table-header .sortable,.table-row>.table-cell:not(.pgn):not(.mastery){flex:2;text-align:center}.pagination-controls{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding-left:20px;padding-right:20px}.success-container{display:flex;justify-content:center;align-items:center;height:100%}.success-card{max-width:500px;text-align:center}.success-icon{font-size:80px;margin-bottom:16px}:root{--color-background: #121212;--color-surface: #1e1e1e;--color-primary: #488aff;--color-primary-rgb: 72, 138, 255;--color-text: #e0e0e0;--color-text-muted: #888888;--color-border: rgba(255, 255, 255, .1)}.landing-page{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol}.landing-content{--background: var(--color-background);color:var(--color-text)}.content-wrapper{max-width:1200px;margin:0 auto;padding:0 16px}.landing-page ion-header{background:rgba(18,18,18,.8);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.landing-page ion-header ion-toolbar{--background: transparent}.header-container{max-width:1200px;margin:0 auto;padding:0 16px;display:flex;align-items:center;justify-content:space-between}.header-title{font-weight:600}.login-button{color:var(--color-text);--ripple-color: var(--color-primary)}.hero-container{display:flex;flex-direction:column;align-items:center;text-align:center;padding:120px 24px 80px}.hero-title{font-size:clamp(2.8rem,6vw,4.2rem);font-weight:800;line-height:1.15;margin:0 0 16px;background:linear-gradient(90deg,#ffffff,#b3cfff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;max-width:800px}.hero-subtitle{font-size:clamp(1.1rem,2.5vw,1.3rem);color:var(--color-text-muted);margin:0 auto 48px;max-width:720px;line-height:1.6}.cta-button{--border-radius: 12px;font-weight:600;font-size:1.1rem;text-transform:none;--background: var(--color-primary);--background-activated: #387be0;height:56px}.text-sm{font-size:.9rem}.text-muted{color:var(--color-text-muted);margin-top:16px}.screenshot-row{padding-bottom:40px}.screenshot-container{padding:1.5rem;background:linear-gradient(145deg,var(--color-surface),#2a2a2a);border-radius:20px;border:1px solid var(--color-border);box-shadow:0 20px 50px #0000004d}.screenshot-placeholder{width:100%;aspect-ratio:16 / 9;background-color:#0003;border:1px dashed var(--color-border);border-radius:12px;display:flex;justify-content:center;align-items:center;color:var(--color-text-muted);font-weight:700;font-size:1.2rem}.section-container{padding:80px 0}.section-title{font-size:clamp(2rem,5vw,2.8rem);font-weight:700;margin-bottom:16px}.section-subtitle{font-size:1.1rem;color:var(--color-text-muted);max-width:500px;margin:0 auto 48px}.feature-col{padding:12px}.feature-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;padding:32px 24px;height:100%;text-align:center;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}.feature-card:hover{transform:translateY(-8px);border-color:var(--color-primary);box-shadow:0 15px 30px #0003}.feature-icon{font-size:48px;margin-bottom:20px;color:var(--color-primary)}.feature-card h3{font-size:1.3rem;font-weight:600;margin:0 0 8px;color:#fff}.feature-card p{color:var(--color-text-muted);line-height:1.6;font-size:.95rem}.advanced-features-section{padding-top:40px;padding-bottom:80px;background:linear-gradient(180deg,rgba(30,30,30,0),var(--color-surface) 15%)}.cta-row{margin-top:48px}.landing-footer{background:var(--color-surface)}.landing-footer ion-toolbar{--background: transparent;--border-width: 0;color:var(--color-text-muted)}.footer-content-wrapper{max-width:1200px;margin:0 auto;padding:24px 16px;display:flex;flex-direction:column;align-items:center;gap:16px}.footer-links{display:flex;gap:24px}.footer-links ion-router-link{color:var(--color-text-muted);text-decoration:none;transition:color .2s ease}.footer-links ion-router-link:hover{color:var(--color-text)}@media (min-width: 768px){.footer-content-wrapper{flex-direction:row;justify-content:space-between}}
