:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}:root{--bg-color:#1a1a1e;--card-bg:#25252b;--accent-color:#769656;--accent-hover:#5d7a44;--text-primary:#fff;--text-secondary:#a1a1aa;--square-light:#fff;--square-dark:#333;--attacked-color:#61892f;--dot-color:#ef4444;--font-main:"Inter", system-ui, -apple-system, sans-serif;--square-size:clamp(46px, min(calc((100vw - 80px) / 8), calc((100vh - 340px) / 8)), 64px)}body{background-color:var(--bg-color);color:var(--text-primary);font-family:var(--font-main);-webkit-font-smoothing:antialiased;background-image:linear-gradient(45deg,#25252b33 25%,#0000 25%),linear-gradient(-45deg,#25252b33 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#25252b33 75%),linear-gradient(-45deg,#0000 75%,#25252b33 75%);background-position:0 0,0 40px,40px 40px,40px 0;background-size:80px 80px;min-height:100vh;margin:0}#root{background-color:var(--bg-color);box-sizing:border-box;border-left:1px solid #3f3f46;border-right:1px solid #3f3f46;width:100%;max-width:1000px;min-height:100vh;margin:0 auto;padding:20px 20px 16px;box-shadow:0 0 100px #000c}.app-container{flex-direction:column;align-items:center;gap:16px;display:flex}h1{background:linear-gradient(to bottom right,#fff,#a1a1aa);-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;margin:0;padding:4px 0 0;font-size:clamp(2rem,4vw,3rem);font-weight:800;line-height:1.2}.app-description{color:var(--text-secondary);text-align:center;max-width:600px;margin:-4px 0 4px;font-size:.98rem;line-height:1.4}.main-nav{background:var(--card-bg);border:1px solid #3f3f46;border-radius:12px;align-items:center;padding:4px;display:flex;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.main-nav button{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:36px;padding:8px 18px;font-size:.9rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.main-nav button:first-child{min-width:118px}.main-nav button:nth-child(2){min-width:104px}.main-nav button:nth-child(3){min-width:96px}.main-nav button:nth-child(4){min-width:142px}.main-nav button.locked{opacity:.5;cursor:not-allowed}.main-nav button.active{color:var(--text-primary);background-color:#3f3f46}.main-nav button:hover:not(.active):not(.locked){color:var(--text-primary)}.auth-btn{min-width:96px;margin-left:12px;border-left:1px solid #3f3f46!important;border-radius:0!important}.google-btn{background-color:#4285f4!important;box-shadow:0 4px 12px #4285f44d!important}.lock-icon{font-size:.8rem}.board-wrapper{background-color:#2c2c34;border:1px solid #3f3f46;border-radius:8px;padding:8px;box-shadow:0 20px 25px -5px #0000004d,0 10px 10px -5px #0000000a}.board{grid-template-columns:repeat(8, var(--square-size));grid-template-rows:repeat(8, var(--square-size));border:2px solid #2c2c34;border-radius:4px;display:grid;overflow:hidden}.square{width:var(--square-size);height:var(--square-size);justify-content:center;align-items:center;transition:background-color .3s;display:flex;position:relative}.square.light{background-color:var(--square-light)}.square.dark{background-color:var(--square-dark)}.square.attacked.light{background-color:#769656}.square.attacked.dark{background-color:#5d7a44}.dot{background-color:var(--dot-color);opacity:.4;border-radius:50%;width:10px;height:10px;transition:all .3s}.square.attacked .dot{opacity:.9;background-color:#fff;transform:scale(.8)}.square.unsafe-piece{box-shadow:inset 0 0 0 3px #ef4444e6}.piece{width:calc(var(--square-size) * .875);height:calc(var(--square-size) * .875);cursor:grab;z-index:10;transition:transform .2s cubic-bezier(.175,.885,.32,1.275)}.piece:hover{transform:scale(1.15)}.piece:active{cursor:grabbing}.tray{background:var(--card-bg);box-sizing:border-box;border:1px solid #3f3f46;border-radius:16px;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;width:100%;max-width:536px;min-height:64px;padding:12px 16px;display:flex;box-shadow:inset 0 2px 4px #0000000f}.controls{justify-content:space-between;width:100%;max-width:536px;display:flex}button.reset-button{color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #3f3f46;border-radius:8px;padding:10px 20px;font-weight:600;transition:all .2s}button.reset-button:hover{color:var(--text-primary);background:#2c2c34;border-color:#52525b}.create-puzzle-button{background-color:var(--accent-color);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:10px 24px;font-weight:700;transition:all .2s;box-shadow:0 4px 14px #76965663}.create-puzzle-button:hover{background-color:var(--accent-hover);transform:translateY(-1px)}.puzzle-header,.card-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.puzzle-header h2,.card-header h3{margin:0}.star-rating{color:#fbbf24;align-items:center;gap:4px;font-size:1.2rem;display:flex}.rating-value{color:#fbbf24;text-align:right;min-width:28px;margin-left:6px;font-size:.85rem;font-weight:800}.rating-count{color:var(--text-secondary);margin-left:4px;font-size:.8rem}.star-rating:not(.interactive) .star{cursor:default}.star-rating.interactive .star{cursor:pointer;transition:transform .1s}.star-rating.interactive .star:hover{transform:scale(1.2)}.star{opacity:.2}.star.filled{opacity:1}.library-container{text-align:center;width:100%;max-width:900px;animation:.4s ease-out fadeIn}.library-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.library-header h2{margin:0}.library-sort{color:var(--text-secondary);align-items:center;gap:10px;font-size:.95rem;display:flex}.library-sort select{background:var(--card-bg);color:var(--text-primary);border:1px solid #3f3f46;border-radius:10px;padding:8px 12px}.no-puzzles{color:var(--text-secondary);opacity:.7;margin-top:48px;font-size:1.1rem}.puzzle-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;margin-top:32px;display:grid}.puzzle-card{background:var(--card-bg);text-align:left;border:1px solid #3f3f46;border-radius:16px;grid-template-rows:88px 40px auto;align-content:start;padding:24px;transition:all .3s;display:grid}.puzzle-card:hover{border-color:var(--accent-color);transform:translateY(-4px);box-shadow:0 12px 20px -10px #00000080}.daily-challenge-card{text-align:left;max-width:420px;margin:32px auto 0}.puzzle-card h3{margin:0;font-size:1.25rem;line-height:1.25}.puzzle-card .card-header{grid-template-rows:52px 28px;align-items:start;gap:8px;margin-bottom:0;display:grid}.puzzle-card .card-header h3{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.puzzle-card .star-rating{justify-content:flex-start;min-height:28px}.puzzle-card p{color:var(--text-secondary);flex-grow:1;margin-bottom:20px;font-size:.95rem;line-height:1.5}.puzzle-type-label{letter-spacing:.02em;align-self:start;font-weight:700;color:var(--accent-color)!important;flex-grow:0!important;margin:0!important;font-size:.85rem!important}.puzzle-card button{color:#fff;cursor:pointer;background:#3f3f46;border:none;border-radius:8px;min-height:42px;padding:10px;font-weight:600;transition:background .2s}.puzzle-card button:hover{background:var(--accent-color)}.puzzle-card-actions{grid-template-columns:1fr auto;align-self:end;gap:10px;display:grid}.puzzle-card-actions button{min-width:0}.puzzle-card-actions .delete-puzzle-button{color:#fca5a5;background:0 0;border:1px solid #ef444480;padding-left:14px;padding-right:14px}.puzzle-card-actions .delete-puzzle-button:hover{color:#fecaca;background:#ef444424}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background-color:#09090bd9;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--card-bg);border:1px solid #3f3f46;border-radius:24px;width:90%;max-width:400px;padding:40px;animation:.3s cubic-bezier(.175,.885,.32,1.275) popIn;box-shadow:0 25px 50px -12px #000000b3}.modal h2{text-align:center;color:var(--text-primary);margin:0 0 8px;font-size:1.75rem;font-weight:800}.modal form{flex-direction:column;gap:20px;display:flex}.form-group label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;text-align:left;margin-bottom:6px;font-size:.85rem;font-weight:600;display:block}.form-group input,.form-group textarea,.form-group select{width:100%;color:var(--text-primary);box-sizing:border-box;background-color:#1a1a1e;border:1px solid #3f3f46;border-radius:12px;outline:none;padding:14px;font-size:1rem;transition:all .2s}.form-group textarea{resize:vertical;height:100px}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--accent-color);background-color:#202024;box-shadow:0 0 0 3px #76965633}.modal-actions{flex-direction:column;gap:12px;margin-top:12px;display:flex}.modal-actions button{cursor:pointer;border:none;border-radius:12px;width:100%;padding:14px;font-size:1rem;font-weight:700;transition:all .2s}.save-button{background-color:var(--accent-color);color:#fff;box-shadow:0 4px 12px #7696564d}.save-button:hover{background-color:var(--accent-hover);transform:translateY(-1px)}.modal-actions button[type=button]{color:var(--text-secondary);background:0 0;border:1px solid #3f3f46}.modal-actions button[type=button]:hover{color:var(--text-primary);background:#ffffff0d}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.puzzle-info{border-left:4px solid var(--accent-color);box-sizing:border-box;background:#7696561a;border-radius:4px 12px 12px 4px;width:100%;max-width:536px;padding:12px 16px}.puzzle-info.minimized{padding-top:12px;padding-bottom:12px}.puzzle-info-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.puzzle-info-header h2{margin:0}.minimize-toggle{color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #3f3f46;border-radius:8px;padding:6px 12px;font-size:.9rem;transition:all .2s}.minimize-toggle:hover{border-color:var(--accent-color);color:var(--text-primary)}.solving-hint{color:var(--accent-color);margin-top:6px;font-weight:600}.puzzle-info p{margin:8px 0 0}.creator-settings{background:var(--card-bg);box-sizing:border-box;border:1px solid #3f3f46;border-radius:16px;width:100%;max-width:536px;padding:14px 16px}.creator-settings label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;text-align:left;margin-bottom:8px;font-size:.85rem;font-weight:600;display:block}.creator-settings select{width:100%;color:var(--text-primary);box-sizing:border-box;background-color:#1a1a1e;border:1px solid #3f3f46;border-radius:12px;outline:none;padding:14px;font-size:1rem}.creator-settings select:focus{border-color:var(--accent-color);background-color:#202024;box-shadow:0 0 0 3px #76965633}.creator-settings-hint{color:var(--accent-color);text-align:left;margin:10px 0 0;font-size:.92rem;line-height:1.4}@media (height<=860px){:root{--square-size:clamp(42px, min(calc((100vw - 72px) / 8), calc((100vh - 300px) / 8)), 58px)}#root{padding-top:12px;padding-bottom:12px}.app-container{gap:12px}.main-nav button{padding:7px 14px;font-size:.86rem}.tray,.puzzle-info{padding:10px 14px}.library-header{flex-direction:column;align-items:stretch}.library-sort{justify-content:space-between}}.toast-container{z-index:9999;pointer-events:none;flex-direction:column;gap:12px;display:flex;position:fixed;top:24px;right:24px}.toast{pointer-events:auto;background:var(--card-bg);color:var(--text-primary);border:1px solid #3f3f46;border-left-width:4px;border-radius:12px;align-items:center;min-width:200px;max-width:350px;padding:12px 20px;font-size:.9rem;font-weight:600;animation:.3s cubic-bezier(.175,.885,.32,1.275) slideInRight;display:flex;box-shadow:0 10px 15px -3px #0006,0 4px 6px -2px #0000000d}.toast.success{border-left-color:var(--accent-color)}.toast.error{border-left-color:#ef4444}.toast.info{border-left-color:#4285f4}.puzzle-card.completed{background:linear-gradient(to bottom right, var(--card-bg), #7696560d);border-color:#76965666}.load-more-container{justify-content:center;margin-top:40px;margin-bottom:40px;display:flex}.load-more-button{color:#fff;cursor:pointer;background:#3f3f46;border:1px solid #52525b;border-radius:12px;padding:12px 32px;font-size:1rem;font-weight:700;transition:all .2s}.load-more-button:hover:not(:disabled){border-color:var(--accent-color);background:#52525b;transform:translateY(-2px)}.load-more-button:disabled{opacity:.5;cursor:not-allowed}.completion-badge{vertical-align:middle;font-size:1rem}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}
