.home-page{flex:1;padding:16px;max-width:960px;margin:0 auto;width:100%}.home-page h1{text-align:center;font-size:1.8rem;margin-bottom:20px;color:var(--on-surface)}.home-header{display:flex;align-items:center;padding:12px 20px;gap:8px;background:var(--surface);border-bottom:1px solid var(--outline);flex-shrink:0;position:sticky;top:0;z-index:50}.home-header-auth{display:flex;align-items:center;gap:8px}.home-header-avatar{width:36px;height:36px;border-radius:50%}.home-header-name{font-size:.95rem;font-weight:500;color:var(--on-surface)}.home-header-btn{padding:6px 14px;border-radius:8px;border:1px solid var(--outline);background:var(--surface-variant);font-size:.85rem;cursor:pointer;transition:background .15s ease}.home-header-btn:hover{background:var(--outline)}.home-header-btn.sign-out{color:var(--error)}.home-header-error{font-size:.8rem;color:var(--error, #d93025)}.difficulty-section{background:var(--surface);border-radius:16px;border:1px solid var(--outline);margin-bottom:16px;overflow:hidden}.difficulty-header{display:flex;justify-content:space-between;align-items:center;padding:14px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease}.difficulty-header:hover{background:var(--surface-variant)}.difficulty-header h2{font-size:1.2rem;color:var(--on-surface);margin:0}.difficulty-header .arrow{font-size:1.4rem;color:var(--on-surface-variant);transition:transform .2s ease}.difficulty-header .arrow.expanded{transform:rotate(-90deg)}.difficulty-content{padding:0 14px 14px;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.size-group{background:var(--surface);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:10px}.size-group-label{font-size:.9rem;font-weight:600;color:var(--primary)}.puzzle-card{display:flex;align-items:center;gap:10px;background:var(--surface-variant);border-radius:10px;padding:8px 10px;cursor:pointer;transition:background .15s ease,transform .1s ease}.puzzle-card:hover{background:var(--outline);transform:translate(-2px)}.puzzle-card:active{transform:scale(.98)}.puzzle-card-info{flex:1;display:flex;align-items:center;justify-content:center;gap:6px}.puzzle-card-info .check-icon{color:var(--green);font-size:1.1rem}.puzzle-card-info .puzzle-title{font-size:1.1rem;font-weight:600;color:var(--on-surface)}.shape-preview{width:56px;height:56px;border-radius:8px;background:var(--surface-variant);border:1px solid var(--outline);overflow:hidden;flex-shrink:0}.shape-preview canvas{width:100%;height:100%}.home-loading,.home-error{display:flex;align-items:center;justify-content:center;min-height:300px;text-align:center}.home-error{color:var(--error)}.empty-message{font-size:.85rem;color:var(--on-surface-variant)}.puzzle-page{display:flex;flex-direction:column;height:100dvh;background:var(--bg)}.puzzle-header{display:flex;align-items:center;padding:8px 12px;gap:8px;background:var(--surface);border-bottom:1px solid var(--outline);flex-shrink:0}.puzzle-header .back-btn{font-size:1.5rem;padding:4px 8px;color:var(--on-surface)}.puzzle-header .title-area{flex:1;display:flex;align-items:center;gap:6px;overflow:hidden}.puzzle-header .check-icon{color:var(--green);font-size:1.2rem;flex-shrink:0}.puzzle-header .title-text{font-size:1rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-font-toggle{display:flex;border-radius:8px;border:1px solid var(--outline);overflow:hidden}.header-font-option{padding:4px 10px;font-size:.95rem;background:var(--surface-variant);color:var(--on-surface-variant);border:none;cursor:pointer;transition:background .15s ease,color .15s ease;line-height:1.2}.header-font-option:first-child{border-right:1px solid var(--outline)}.header-font-option.active{background:var(--primary);color:#fff}.header-theme-btn{font-size:1.2rem;padding:4px 6px;background:none;border:none;cursor:pointer;line-height:1}.puzzle-header .reset-btn{font-size:1.3rem;padding:4px 8px;color:var(--on-surface-variant)}.grid-area{flex:1;display:flex;flex-direction:column;align-items:center;overflow:auto;padding:8px}.grid-surface{background:var(--surface-variant);border-radius:12px;padding:8px;border:2px solid transparent;transition:border-color .3s ease;width:100%;max-width:500px}.grid-surface.solved{border-color:var(--green)}.crossword-grid{display:inline-grid;gap:0;direction:rtl;border-top:.5px solid var(--cell-border);border-right:.5px solid var(--cell-border)}.crossword-cell{position:relative;display:flex;align-items:center;justify-content:center;border-left:.5px solid var(--cell-border);border-bottom:.5px solid var(--cell-border);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .1s ease}.crossword-cell.blocked{background:transparent;cursor:default}.crossword-cell.selected{background:var(--cell-selected)}.crossword-cell.completed{background:var(--cell-completed)}.crossword-cell.highlighted{background:var(--cell-highlighted)}.crossword-cell.normal{background:var(--surface)}.crossword-cell .cell-number{position:absolute;top:1px;right:2px;line-height:1;color:var(--on-surface-variant);pointer-events:none}.crossword-cell.selected .cell-number,.crossword-cell.highlighted .cell-number{color:var(--cell-text-on-active)}.crossword-cell .cell-letter{font-weight:700;line-height:1;color:var(--on-surface);pointer-events:none}.crossword-cell.selected .cell-letter,.crossword-cell.highlighted .cell-letter{color:var(--cell-text-on-active)}.crossword-cell .cell-letter.hint{color:var(--cell-hint-text)}.crossword-cell.selected .cell-letter.hint,.crossword-cell.highlighted .cell-letter.hint{color:var(--cell-text-on-active)}.clue-bar{display:flex;align-items:center;padding:12px 8px;background:var(--surface);flex-shrink:0;gap:4px;width:100%;max-width:500px}.clue-bar .nav-btn{font-size:1.7rem;padding:4px 8px;color:var(--on-surface);flex-shrink:0}.clue-bar .direction-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:var(--on-surface-variant);flex-shrink:0}.clue-bar .clue-text{flex:1;font-size:1.15rem;line-height:1.3;color:var(--on-surface);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.hidden-input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.puzzle-loading,.puzzle-error{flex:1;display:flex;align-items:center;justify-content:center}.puzzle-error{color:var(--error);padding:16px;text-align:center}.spinner{width:40px;height:40px;border:3px solid var(--outline);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.wrong-keyboard-toast{position:fixed;bottom:80px;left:50%;transform:translate(-50%);background:#000000d9;color:#fff;padding:10px 20px;border-radius:8px;font-size:.9rem;z-index:200;animation:toast-fade-in .2s ease;pointer-events:none}@keyframes toast-fade-in{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100}.dialog{background:var(--surface);border-radius:16px;padding:24px;max-width:320px;width:90%;box-shadow:0 8px 32px var(--shadow)}.dialog h3{margin-bottom:12px;font-size:1.1rem}.dialog p{margin-bottom:20px;color:var(--on-surface-variant);font-size:.9rem;line-height:1.4}.dialog-actions{display:flex;justify-content:flex-end;gap:12px}.dialog-actions button{padding:8px 16px;border-radius:8px;font-size:.9rem;font-weight:600}.dialog-actions .cancel-btn{color:var(--on-surface-variant)}.dialog-actions .confirm-btn{color:var(--error)}:root{--cell-selected: #FFD54F;--cell-highlighted: #BBDEFB;--cell-completed: #E8F5E9;--cell-hint-text: #5C8DB8;--cell-border: #9E9E9E;--cell-text-on-active: #1a1a1a;--bg: #ffffff;--surface: #fafafa;--surface-variant: #f0f0f0;--on-surface: #1a1a1a;--on-surface-variant: #666666;--green: #2E7D32;--green-light: #E8F5E9;--error: #d32f2f;--outline: #c0c0c0;--primary: #1976D2;--primary-light: #E3F2FD;--shadow: rgba(0, 0, 0, .08)}[data-theme=dark]{--cell-selected: #FF8F00;--cell-highlighted: #1565C0;--cell-completed: #1B5E20;--cell-hint-text: #7EB3E0;--cell-border: #616161;--cell-text-on-active: #E8ECEF;--bg: #101214;--surface: #161A1D;--surface-variant: #232A2F;--on-surface: #E8ECEF;--on-surface-variant: #C4C9CD;--green: #66BB6A;--green-light: #1B5E20;--error: #ef5350;--outline: #444444;--primary: #64B5F6;--primary-light: #1565C0;--shadow: rgba(0, 0, 0, .3)}@font-face{font-family:Dana Hand Writing;src:url(/fonts/dana_hand_writing.otf) format("opentype");font-display:swap}@font-face{font-family:David Libre Medium;src:url(/fonts/david_lib_med.ttf) format("truetype");font-display:swap}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{direction:rtl;font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg);color:var(--on-surface);min-height:100dvh;transition:background-color .2s ease,color .2s ease}#root{min-height:100dvh;display:flex;flex-direction:column}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none;font:inherit;color:inherit}:focus-visible{outline:2px solid var(--cell-selected);outline-offset:2px}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--cell-border);border-radius:3px}
