.header{padding:0;position:absolute;top:0;left:0;right:0;z-index:100}.header-content{max-width:1600px;margin:0 auto;padding:40px 40px 0;display:flex;align-items:center;gap:18px}.back-button{border:none;background:none;color:#000;padding:0;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.logo{display:flex;align-items:center;gap:12px;flex-shrink:0}.header-spacer{flex:1}.header-actions{display:flex;align-items:center;gap:14px;margin-left:auto}.logo-text{font-size:24px;font-weight:600;letter-spacing:-.5px}.logo-badge{background:#000;color:#fff;padding:4px 6px;border-radius:2px;font-size:15px;font-weight:400;letter-spacing:-2%}.page-title{font-size:20px;font-weight:600;margin:0;color:#000}.battery-icon{width:20px;height:20px;fill:none;flex-shrink:0}.firmware-entry-button{display:inline-flex;align-items:center;gap:10px;min-height:40px;padding:0 14px;border:1px solid rgba(15,23,42,.08);border-radius:999px;background:#ffffffd6;color:#111827;font-size:14px;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.firmware-entry-button:hover:not(:disabled){transform:translateY(-1px);border-color:#d46e3847;box-shadow:0 10px 28px #d46e3824}.firmware-entry-button:disabled{opacity:.7;cursor:wait}.firmware-entry-icon-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center}.firmware-entry-dot{position:absolute;top:-2px;right:-3px;width:9px;height:9px;border-radius:999px;background:#ef4444;box-shadow:0 0 0 3px #ffffffe6}@media (max-width: 768px){.header-content{padding:15px 20px;flex-direction:column;gap:15px;text-align:center}.logo-text{font-size:20px}.page-title{font-size:18px}.header-actions{margin-left:0}}@media (max-width: 480px){.header-content{padding:12px 15px}.logo-text{font-size:18px}.page-title{font-size:16px}}.logo{display:inline-flex;align-items:center;gap:12px;font-family:inherit;-webkit-user-select:none;user-select:none}.logo--clickable{cursor:pointer;transition:opacity .2s ease-in-out}.logo--clickable:hover{opacity:.8}.logo--clickable:active{opacity:.6}.logo__image{display:block;object-fit:contain;flex-shrink:0}.logo__text{font-weight:600;letter-spacing:-.02em;white-space:nowrap}.logo--small .logo__image{height:20px}.logo--small .logo__text{font-size:14px}.logo--medium .logo__image{height:28px}.logo--medium .logo__text{font-size:18px}.logo--large .logo__image{height:36px}.logo--large .logo__text{font-size:22px}.logo--xlarge .logo__image{height:44px}.logo--xlarge .logo__text{font-size:26px}.logo--default .logo__text{color:#3f3f3f}.logo--white .logo__text{color:#fff}.logo--dark .logo__text{color:#1a1a1a}@media (max-width: 640px){.logo--large .logo__image{height:32px}.logo--large .logo__text{font-size:20px}.logo--xlarge .logo__image{height:40px}.logo--xlarge .logo__text{font-size:24px}}@media (max-width: 480px){.logo{gap:8px}.logo--medium .logo__image{height:24px}.logo--medium .logo__text{font-size:18px}}.connect-page{min-height:100vh;display:flex;flex-direction:column}.connect-container{max-width:600px;height:100%;margin:0 auto;padding:0 20px;display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:30px}.connect-section{background:#fff;border-radius:20px;box-shadow:0 20px 40px #0000001a;padding:60px 40px;text-align:center;width:100%;height:100%;position:relative;overflow:hidden}.connect-button{background:#000;color:#fff;border:none;padding:16px 40px;border-radius:12px;font-size:18px;font-weight:600;cursor:pointer;transition:all .3s ease;min-width:200px}.connect-button:disabled{opacity:.7;cursor:not-allowed;transform:none}.connection-type-selector{margin-bottom:20px;text-align:center}.connection-type-selector label{display:block;margin-bottom:8px;color:#4a5568;font-weight:500;font-size:14px}.connection-type-select{background:#fff;border:2px solid #e2e8f0;border-radius:8px;padding:8px 12px;font-size:14px;color:#2d3748;cursor:pointer;transition:all .3s ease;min-width:150px}.connection-type-select:hover{border-color:#cbd5e0}.connection-type-select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.loading-state{display:flex;flex-direction:column;align-items:center;gap:16px;padding:20px}.loading-spinner{width:40px;height:40px;border:4px solid #e2e8f0;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-state p{color:#4a5568;font-size:14px;margin:0}.config-button{background:#48bb78;color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;margin-top:16px}.config-button:hover{background:#38a169;transform:translateY(-1px)}.error-message{background:#fed7d7;color:#c53030;padding:12px 16px;border-radius:8px;margin-top:16px;font-size:14px;border-left:4px solid #e53e3e}.connection-info{margin-top:20px;padding:20px;background:#f7fafc;border-radius:12px;border:1px solid #e2e8f0}.connection-status{display:flex;align-items:center;gap:12px;margin-bottom:16px}.status-indicator{width:12px;height:12px;border-radius:50%;flex-shrink:0}.status-indicator.connected{background:#48bb78;box-shadow:0 0 0 3px #48bb7833;animation:pulse 2s infinite}.status-indicator.disconnected{background:#e53e3e}.status-indicator.connecting{background:#ed8936;animation:pulse 1s infinite}@keyframes pulse{0%{box-shadow:0 0 #48bb7866}70%{box-shadow:0 0 0 10px #48bb7800}to{box-shadow:0 0 #48bb7800}}.connection-info p{margin:0;color:#4a5568;font-weight:500}.available-devices{margin-top:20px;text-align:left}.available-devices h3{margin:0 0 12px;color:#2d3748;font-size:16px}.device-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f7fafc;border-radius:8px;margin-bottom:8px;border:1px solid #e2e8f0}.device-item span{color:#4a5568;font-weight:500}.device-item button{background:#4299e1;color:#fff;border:none;padding:6px 12px;border-radius:6px;font-size:12px;cursor:pointer;transition:background .2s ease}.device-item button:hover:not(:disabled){background:#3182ce}.device-item button:disabled{opacity:.5;cursor:not-allowed}.compatibility-info{margin-top:20px;text-align:center}.browser-status{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:8px}.browser-status p{color:#68d391;font-size:14px;font-weight:500;margin:0}.help-text{color:#a0aec0;font-size:12px}.help-text p{margin:0 0 12px;line-height:1.4}.debug-button{background:#ed8936;color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .3s ease}.debug-button:hover{background:#dd6b20;transform:translateY(-1px)}.compatibility-message{text-align:center;color:#2d3748}.compatibility-message h2{color:#e53e3e;margin-bottom:16px;font-size:24px}.compatibility-message p{margin-bottom:12px;line-height:1.6;color:#4a5568}.recommended-browsers{margin-top:24px;text-align:left;background:#f7fafc;padding:20px;border-radius:12px;border:1px solid #e2e8f0}.recommended-browsers h3{margin:0 0 12px;color:#2d3748;font-size:16px}.recommended-browsers ul{margin:0;padding-left:20px;color:#4a5568}.recommended-browsers li{margin-bottom:4px}.primary-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:6px;font-family:inherit;font-weight:400;text-decoration:none;cursor:pointer;transition:all .3s ease-in-out;outline:none;-webkit-user-select:none;user-select:none;white-space:nowrap}.primary-button:focus{box-shadow:0 0 0 1px #f6923b80}.primary-button--small{padding:8px 16px;font-size:14px;min-height:36px}.primary-button--medium{padding:12px 24px;font-size:16px;min-height:44px}.primary-button--large{padding:16px 32px;font-size:18px;min-height:52px}.primary-button--primary{background:#fff;color:#3f3f3f;border:1px solid #e9e9e9;box-shadow:none}.primary-button--primary:hover:not(.primary-button--disabled){background:#fff;color:#3f3f3f;border:1px solid rgba(212,110,56,.2);box-shadow:0 0 40px 10px #d46e3833;transform:scale(1.02)}.primary-button--primary:active:not(.primary-button--disabled){transform:scale(1.01);box-shadow:0 0 32px 8px #d46e3833}.primary-button--secondary{background:#d46e38;color:#fff;box-shadow:0 2px 4px #d46e384d}.primary-button--secondary:hover:not(.primary-button--disabled){background:#c55a2a;box-shadow:0 4px 8px #d46e3866;transform:translateY(-1px)}.primary-button--secondary:active:not(.primary-button--disabled){transform:translateY(0);box-shadow:0 2px 4px #d46e384d}.primary-button--danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 2px 4px #ef44444d}.primary-button--danger:hover:not(.primary-button--disabled){background:linear-gradient(135deg,#dc2626,#b91c1c);box-shadow:0 4px 8px #ef444466;transform:translateY(-1px)}.primary-button--danger:active:not(.primary-button--disabled){transform:translateY(0);box-shadow:0 2px 4px #ef44444d}.primary-button--black{background:#333;color:#fff;border:none;box-shadow:none}.primary-button--black:hover:not(.primary-button--disabled){background:#222;box-shadow:0 4px 8px #3336;transform:translateY(-1px)}.primary-button--black:active:not(.primary-button--disabled){transform:translateY(0);box-shadow:0 2px 4px #3333334d}.primary-button--full-width{width:100%}.primary-button--disabled{opacity:.6;cursor:not-allowed;transform:none!important;box-shadow:none!important;background:#fff!important;color:#3f3f3f!important;border:1px solid #e9e9e9!important}.primary-button--loading{cursor:wait}.primary-button__spinner{width:16px;height:16px;border:2px solid transparent;border-top:2px solid #3f3f3f;border-radius:50%;animation:primary-button-spin 1s linear infinite}.primary-button--small .primary-button__spinner{width:14px;height:14px}.primary-button--large .primary-button__spinner{width:18px;height:18px}@keyframes primary-button-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.primary-button__content{display:flex;align-items:center;gap:8px}@media (max-width: 640px){.primary-button--medium{padding:10px 20px;font-size:15px;min-height:40px}.primary-button--large{padding:14px 28px;font-size:17px;min-height:48px}}.keyboard-overlay{position:relative;display:inline-block;margin:0 auto}.keyboard-background{background-size:cover;background-repeat:no-repeat;background-position:center;opacity:.8}.keyboard-keys-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.keyboard-key{position:absolute;background:#0009;border:1px solid #e3e3e3;border-radius:4px;cursor:pointer;pointer-events:auto;display:flex;align-items:center;justify-content:center;font-family:inherit;font-size:12px;font-weight:400;color:#e3e3e3;-webkit-user-select:none;user-select:none}.keyboard-key:hover{background:#fbf0eb;border-color:#d46e38;color:#d46e38}.keyboard-key.selected{background:#fbf0eb;border-color:#d46e38;color:#d46e38;box-shadow:0 0 15px #d46e38b3}.keyboard-key:active{transform:scale(.95);background:#fbf0eb;border-color:#d46e38;color:#d46e38}.key-label{font-size:10px;font-weight:600;text-align:center;line-height:1}.key-label-container{display:flex;flex-direction:column;align-items:center;justify-content:center}.key-label-icon{font-size:1.3em;display:flex;align-items:center;justify-content:center;width:1em;height:1em}.key-label-icon-wifi24g{transform:translateY(-1px)}.key-label-text{font-size:9.5px;font-weight:600;width:100%;text-align:left;line-height:1}.jp-key-enter,.uk-key-enter{position:relative;border-radius:0 4px 4px;box-sizing:border-box}:is(:is(.jp-key-enter,.uk-key-enter).selected,:is(.jp-key-enter,.uk-key-enter):hover):before{background:#fbf0eb;border-color:#d46e38}:is(.jp-key-enter,.uk-key-enter):before{content:"";width:11px;height:34.5px;display:inline-block;position:absolute;left:-11px;top:-1px;background:#0009;border:1px solid #e3e3e3;border-right:none;border-radius:4px 0 0 4px;box-sizing:border-box}@media (max-width: 768px){.keyboard-overlay{transform:scale(.8);transform-origin:center}.key-label{font-size:8px}}@media (max-width: 480px){.keyboard-overlay{transform:scale(.6);transform-origin:center}.key-label{font-size:6px}}.dialog-overlay{position:fixed;inset:0;background:#0f172a59;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:999}.dialog-content{display:flex;flex-direction:column;position:fixed;inset:0;margin:auto;z-index:1000;width:923px;height:718px;border-radius:12px;padding:48px;background-color:#fffc;box-shadow:0 0 40px #00000040;-webkit-backdrop-filter:blur(40px);backdrop-filter:blur(40px)}.dialog-content:before{content:"";position:absolute;inset:0;background-image:url(../../assets/keyboards/and-us-black.png);background-size:contain;background-position:start;background-repeat:no-repeat;opacity:.1;filter:blur(8px);pointer-events:none;z-index:0}.dialog-content--small{width:350px;height:180px}.dialog-content--medium{width:560px}.dialog-content--large{width:923px;height:718px}.dialog-inner{position:relative;z-index:1;width:100%;height:100%;display:flex;flex-direction:column}.dialog-header{display:flex;align-items:center;justify-content:space-between}.dialog-title{align-items:center;justify-content:space-between;font-weight:700;font-style:Bold;font-size:32px;line-height:100%;letter-spacing:0%;vertical-align:bottom}.dialog-close{border:none;background:transparent;cursor:pointer;width:40px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center;line-height:0;position:absolute;top:48px;right:48px}.dialog-body{display:flex;flex-direction:column;flex:1;margin-top:40px}.dialog-footer{display:flex;margin-top:24px;justify-content:flex-end;gap:12px}.dialog-description{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.firmware-update-dialog.dialog-content{width:860px;height:680px}.firmware-update-dialog .dialog-body{min-height:0;overflow-y:auto;padding-right:8px;overscroll-behavior:contain}.firmware-update-dialog .dialog-body::-webkit-scrollbar{width:8px}.firmware-update-dialog .dialog-body::-webkit-scrollbar-thumb{background:#94a3b8b3;border-radius:999px}.firmware-update-dialog .dialog-body::-webkit-scrollbar-track{background:#e2e8f099;border-radius:999px}.firmware-update-layout{display:flex;flex-direction:column;gap:24px;height:100%;position:relative;z-index:1}.firmware-update-summary{padding:20px 24px;border-radius:18px;background:#ffffffd6;border:1px solid rgba(212,110,56,.14);box-shadow:0 18px 40px #0f172a14}.firmware-update-badge{display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;background:#d46e381f;color:#b55422;font-size:13px;font-weight:600}.firmware-update-versions{display:flex;gap:14px;margin-top:16px}.firmware-update-version-card{min-width:160px;padding:14px 16px;border-radius:14px;background:#fff;border:1px solid rgba(148,163,184,.2)}.firmware-update-label{display:block;color:#64748b;font-size:12px;margin-bottom:6px}.firmware-update-version-card strong{color:#0f172a;font-size:24px;font-weight:700}.firmware-update-hint{margin:14px 0 0;color:#7c2d12;font-size:13px;line-height:1.5}.firmware-download-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.firmware-download-grid>.firmware-download-card:only-child{grid-column:1 / -1}.firmware-download-card{display:flex;flex-direction:column;justify-content:space-between;gap:16px;min-height:176px;padding:20px;border-radius:18px;background:#ffffffe0;border:1px solid rgba(148,163,184,.2);box-shadow:0 12px 30px #0f172a0f}.firmware-download-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.firmware-download-card h3{margin:0 0 8px;color:#0f172a;font-size:18px}.firmware-download-card p{margin:0;color:#64748b;font-size:14px;line-height:1.5}.firmware-download-note{min-height:42px}.firmware-download-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;border:none;border-radius:12px;background:#d46e38;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.firmware-download-button:hover:not(:disabled){background:#c55a2a;transform:translateY(-1px);box-shadow:0 10px 24px #d46e3847}.firmware-download-button:disabled{background:#cbd5e1;color:#fff;cursor:not-allowed;box-shadow:none}.firmware-guide{padding:20px 24px;border-radius:18px;background:#ffffffd6;border:1px solid rgba(148,163,184,.2)}.firmware-guide h3{margin:0 0 18px;color:#0f172a;font-size:20px}.firmware-guide-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}.firmware-guide-item{display:flex;gap:14px;align-items:flex-start}.firmware-guide-index{display:inline-flex;align-items:center;justify-content:center;flex:0 0 30px;width:30px;height:30px;border-radius:999px;background:#111827;color:#fff;font-size:13px;font-weight:700}.firmware-guide-item strong{display:block;margin-bottom:4px;color:#111827;font-size:15px}.firmware-guide-item p{margin:0;color:#475569;font-size:14px;line-height:1.6}.firmware-update-state{display:flex;align-items:center;justify-content:center;gap:10px;height:100%;color:#334155;font-size:16px;position:relative;z-index:1}.firmware-update-state--error{color:#b91c1c}.config-page{height:100vh;min-height:920px;padding-top:100px;display:flex;flex-direction:column}.config-container{flex:1;display:flex;flex-direction:column;width:100%;overflow:hidden}.keyboard-display-section{flex:1;display:flex;justify-content:center;align-items:center;flex-direction:row;gap:5px;max-width:1400px;max-height:45%;margin:0 auto;padding:0 60px 40px 0;position:relative;z-index:1}.keyboard-layout{flex:1;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.keyboard-placeholder{text-align:center;color:#718096}.keyboard-placeholder p{margin:8px 0;font-size:14px}.keyboard-overlay-container{max-width:100%;max-height:100%}.keyboard-loading,.keyboard-error{display:flex;align-items:center;justify-content:center;padding:40px;color:#666;font-size:16px}.keyboard-error{color:#e53e3e}.configuration-section{flex:1;display:flex;flex-direction:column;position:relative;background:#fff;z-index:2}.configuration-section:before{content:"";position:absolute;top:-20px;left:50%;transform:translate(-50%);width:120%;height:80px;background:#fff;border-radius:50%;box-shadow:0 -20px 50px #d46e3813}.configuration-wrapper{width:100%;max-width:1400px;margin:0 auto;padding:10px 60px 40px;position:relative}.config-tabs{display:flex;align-items:center;position:relative;z-index:1;gap:32px}.config-tab{position:relative;display:flex;align-items:center;gap:6px;padding:10px 0;border:none;background:transparent;color:#718096;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;border-bottom:2px solid transparent}.config-tab:hover{color:#4a5568}.config-tab.active:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:40px;height:2px;background:#d46e38}.config-tab.active{color:#000}.config-tab:not(.active):hover{color:#000}.config-content{flex:1;padding:20px 0 0;width:100%;height:100%}.tab-content{height:100%;display:flex;align-items:center;justify-content:center;font-size:18px;color:#718096}.config-placeholder{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;margin-bottom:40px}.placeholder-card{background:#f7fafc;border:2px solid #e2e8f0;border-radius:16px;padding:24px;transition:all .3s ease}.placeholder-card:hover{transform:translateY(-4px);box-shadow:0 12px 25px #0000001a;border-color:#cbd5e0}.placeholder-card h2{color:#2d3748;margin-bottom:16px;font-size:18px;font-weight:600}.placeholder-card p{color:#4a5568;margin-bottom:8px;font-size:14px;line-height:1.5}.config-actions{display:flex;justify-content:center;gap:16px;flex-wrap:wrap}.action-button{padding:12px 24px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;border:none;min-width:140px}.action-button.primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 15px #667eea4d}.action-button.primary:hover{transform:translateY(-2px);box-shadow:0 8px 20px #667eea66}.action-button.secondary{background:#fff;color:#4a5568;border:2px solid #e2e8f0}.action-button.secondary:hover{background:#f7fafc;border-color:#cbd5e0;transform:translateY(-1px)}.kb-grid{display:inline-block;background:#f8fafc;padding:12px;border-radius:12px;border:1px solid #e2e8f0}.key-row{display:flex;gap:6px;margin-bottom:6px}.keycap{min-width:40px;height:40px;border-radius:6px;border:1px solid #cbd5e0;background:#fff;font-size:12px;padding:0 6px}.keycap.selected{border-color:#667eea;box-shadow:0 0 0 2px #667eea33}.layer-switcher{display:flex;flex-direction:column;justify-content:space-evenly;gap:12px;-webkit-user-select:none;user-select:none;padding-top:50px;padding-bottom:60px;flex:0 0 auto}.layer-item{appearance:none;background:none;border:0;padding:0;display:inline-flex;justify-content:flex-end;align-items:center;gap:8px;cursor:pointer;font-size:16px;line-height:1;text-align:right;transform-origin:right center;color:#acacac}.layer-item:before{content:"→";opacity:0;transform:translateY(-2px);color:#5b5b5b;font-size:18px}.layer-item.active{color:#5b5b5b;font-weight:600;transform:scale(1.06)}.layer-item.active:before{opacity:1}.layer-item:hover{color:#5b5b5b;transform:scale(1.08)}.keycode-picker{margin-top:16px}.picker-controls{display:flex;gap:12px;margin-bottom:12px}.picker-controls select,.picker-controls input{padding:6px 8px;border:1px solid #cbd5e0;border-radius:4px}.picker-controls input{flex:1}.picker-grid{display:flex;flex-wrap:wrap;gap:8px}.picker-key{border:1px solid #cbd5e0;background:#fff;border-radius:6px;padding:8px 10px;font-size:12px}.picker-key:hover{background:#f7fafc}.keyboard-layout-view{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:10px;overflow:auto}.keyboard-container{display:flex;flex-direction:column;gap:20px}.function-row{display:flex;gap:8px;margin-bottom:8px}.key-group{display:flex;gap:4px}.function-keys,.system-keys{gap:4px}.keyboard-main{display:flex;gap:20px}.alphanumeric-block,.navigation-cluster,.numeric-keypad{display:flex;flex-direction:column;gap:4px}.keyboard-row{display:flex;gap:4px;align-items:flex-start}.key{width:50px;height:50px;border-radius:4px;background:#f4f4f4;color:#717171;font-size:12px;font-weight:400;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.2;-webkit-user-select:none;user-select:none}.key:hover{background:#d46e381a;transform:translateY(-1px);border:1px solid rgba(212,110,56,.2);box-shadow:0 0 20px #d46e381a}.key:active{transform:translateY(0);background:#d46e381a;border:1px solid rgba(212,110,56,.2);box-shadow:0 0 10px #d46e3833}.wide-key{min-width:60px}.space-key{min-width:200px}.tall-key{height:84px}.flex-key{min-width:80px;flex:1}.esc-key{min-width:50px}.function-key{min-width:35px}.system-key{min-width:45px}.word-break{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.word-break span{font-size:12px;font-weight:400;color:#717171}.key.selected{color:#fff;box-shadow:0 0 20px #d46e381a}.key.selected:hover{transform:translateY(-2px);box-shadow:0 0 20px #d46e3833}.functions-view{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:10px;overflow:auto}.functions-container{display:flex;flex-direction:column;gap:20px;width:100%;max-width:1200px}.functions-grid{display:flex;flex-wrap:wrap;gap:20px;justify-content:flex-start;align-items:center}.function-group{display:flex;gap:4px}.function-group--row2{width:100%;justify-content:flex-start}.shortcuts-view{width:100%;height:100%;display:grid;position:relative;grid-template-columns:1fr auto;grid-template-rows:auto 1fr;align-items:flex-start;padding:20px;column-gap:24px;row-gap:16px;min-width:0;min-height:0}.shortcuts-view .add-shortcut-button{grid-column:2;grid-row:1;position:absolute;width:107px;height:42px;font-size:15px;top:-55px;right:90px;justify-self:end;margin-left:0}.shortcuts-view .shortcuts-list{grid-column:1 / -1;grid-row:2;width:100%;height:325px;max-width:100%;min-width:0;min-height:0;max-height:100%;padding-right:80px;padding-top:8px;padding-bottom:8px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:transparent transparent;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));column-gap:48px;row-gap:8px;justify-items:start;align-content:start}.shortcuts-empty{padding:8px;font-size:14px;color:#717171}.shortcuts-view .shortcuts-list::-webkit-scrollbar{width:6px}.shortcuts-view .shortcuts-list::-webkit-scrollbar-thumb{background-color:transparent;border-radius:10px}.shortcuts-view .shortcuts-list:hover::-webkit-scrollbar-thumb{background-color:#0003}.shortcuts-view .shortcuts-list:hover{scrollbar-color:rgba(0,0,0,.2) transparent}.field-group{display:flex;flex-direction:column;gap:20px}.field-label{color:#000;font-weight:700;font-size:20px}.type-toggle{display:inline-flex;gap:15px;margin-bottom:25px}.shortcut-dialog .shortcut-type-btn{width:142px;height:50px;border-radius:5px;border-width:1px;padding:19px 36px;background-color:#f4f4f4;box-shadow:none;font-weight:400;font-size:14px;color:#717171}.shortcut-dialog .shortcut-type-btn.active{background-color:#fff;background:#fbf0eb;box-shadow:0 0 20px #d46e3866;border:1px solid #d46e38}.shortcut-dialog .shortcut-type-btn:hover{background-color:#f4f4f4;box-shadow:none}.type-toggle .field-input{width:417px;max-width:450px;height:50px;border-radius:4px;opacity:1;top:37px;gap:10px;padding:16px 12px 18px;font-size:14px;line-height:1.1;box-shadow:inset 0 0 3px #00000040;box-sizing:border-box;border:1px solid rgba(0,0,0,.35);background:#fff}.quicktext-input-row{display:flex;align-items:flex-end;gap:2px}.quicktext-input-row .field-textarea{height:50px;min-height:50px;max-height:250px;line-height:125%;resize:none;overflow-y:hidden;overflow-x:hidden;white-space:pre-wrap;word-break:break-word;box-shadow:none}.char-count{font-size:14px;color:#717171;-webkit-user-select:none;user-select:none;min-width:64px;text-align:right;margin-bottom:2px}.type-toggle .field-input::placeholder{font-weight:400;font-size:14px}.type-toggle .field-input:focus{color:#333;outline:none;outline-offset:none}.field-hint{font-weight:400;font-size:14px;margin-top:13px;color:#717171;line-height:150%}.field-hint--error{color:#dc2626;white-space:pre-line}.field-hint--error .field-hint-subhint{display:block;margin-top:13px;white-space:pre-line;letter-spacing:.1px}.shortcut-dialog .save-btn{width:119px;height:50px;border-radius:4px;padding:16px 40px;color:#fff;font-weight:700;font-size:18px;background-color:#000}.shortcut-dialog .save-btn:hover{box-shadow:none;background-color:#000;color:#fff}.shortcut-dialog .sc-delete-anchor .delete-btn{width:119px;height:50px;border-radius:4px;padding:16px 40px;border:1px solid #333;background-color:#33333305;box-shadow:none;background-image:none;align-items:center;font-size:16px;font-weight:700;margin-right:8px}.sc-delete-anchor{position:relative;display:inline-flex}.sc-delete-popover{position:absolute;left:0;bottom:calc(100% + 12px);width:354px;height:180px;padding:25px 24px 40px;border-radius:4px;gap:10px;background:#fff;border:1px solid rgba(0,0,0,.08);box-shadow:0 0 14px #0000002b;display:flex;flex-direction:column;box-sizing:border-box;z-index:2}.sc-delete-popover:after{content:"";position:absolute;bottom:-8px;left:30px;width:16px;height:16px;background:#fff;transform:rotate(45deg);box-shadow:4px 4px 5px #0000000d;z-index:-1}.sc-delete-title{font-size:20px;font-weight:700;color:#111827}.sc-delete-message{font-size:14px;line-height:150%;color:#000;max-width:309px;margin-bottom:25px}.sc-delete-actions{display:flex;gap:20px;justify-content:flex-start}.sc-delete-btn{border:none;align-items:center;background:transparent;justify-content:center;padding:0;font-size:16px;font-weight:700;cursor:pointer;background-color:#fff}.sc-delete-btn:hover:not(:disabled){color:#111827}.sc-delete-btn--danger{color:red}.sc-delete-btn--danger:hover:not(:disabled){color:#b91c1c}.sc-delete-btn:disabled{opacity:.6;cursor:not-allowed}.add-shortcut-dialog .sc-delete-btn-main.primary-button--danger{background:#3333330d;color:#333;box-shadow:none}.add-shortcut-dialog .sc-delete-btn-main.primary-button--danger:hover:not(.primary-button--disabled){background:#33333314;transform:translateY(-1px);box-shadow:none}.add-shortcut-dialog .sc-delete-btn-main.primary-button--danger:active:not(.primary-button--disabled){background:#3333331f;transform:translateY(0);box-shadow:none}.shortcut-row{display:flex;flex-direction:row;align-items:center;margin-bottom:13px;cursor:pointer;gap:13px;min-height:42px;max-width:100%;position:relative;z-index:0}.shortcut-row:hover{z-index:1}.shortcut-row-active .shortcut-pill{background:#d46e381f;border-color:#d46e3859;box-shadow:0 0 16px #d46e381f}.shortcut-index{color:#b2b2b2;font-weight:400;font-size:14px;line-height:1;text-align:right;vertical-align:middle;margin-right:8px;min-width:32px}.shortcut-pill{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#f4f4f4;width:auto;max-width:300px;min-width:0;height:42px;box-sizing:border-box;border:1px solid transparent;padding:2px 12px 0;border-radius:4px;flex:1 1 auto;color:#333;font-family:Inter,sans-serif;font-weight:400;font-size:14px;line-height:1.2;vertical-align:middle;position:relative;transition:all .2s ease}.shortcut-row .shortcut-pill:hover{background:#d46e381a;transform:translateY(-1px);border-color:#d46e3833;box-shadow:0 0 20px #d46e381a}.pill-text{font-size:inherit;color:inherit;line-height:inherit;display:block;flex:1 1 auto;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.shortcut-edit-btn{margin-left:0;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:#717171;opacity:0;pointer-events:none;cursor:pointer;flex:0 0 40px;transition:opacity .15s ease-in-out,transform .15s ease-in-out,color .15s ease-in-out}.shortcut-row:hover .shortcut-edit-btn{opacity:1;pointer-events:auto;transform:translate(2px);color:#333}.shortcut-edit-btn:hover{color:#d46e38}.shortcut-edit-btn:focus-visible{outline:2px solid rgba(212,110,56,.35);outline-offset:2px;border-radius:6px}.custom-tooltip{position:fixed;z-index:2000;width:max-content;max-width:260px;padding:8px 12px;background-color:#fff;color:#374151;font-size:13px;line-height:1.5;font-weight:500;text-align:center;white-space:normal;word-wrap:break-word;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;pointer-events:none}.custom-tooltip-top{animation:tooltipFadeInTop .2s cubic-bezier(.165,.84,.44,1) forwards}.custom-tooltip-bottom{animation:tooltipFadeInBottom .2s cubic-bezier(.165,.84,.44,1) forwards}@keyframes tooltipFadeInTop{0%{opacity:0;transform:translate(-50%) translateY(calc(-100% - 2px))}to{opacity:1;transform:translate(-50%) translateY(calc(-100% - 14px))}}.custom-tooltip-top:after{content:"";position:absolute;bottom:-6px;left:50%;margin-left:-6px;width:12px;height:12px;background-color:#fff;border-bottom:1px solid #e5e7eb;border-right:1px solid #e5e7eb;transform:rotate(45deg)}.custom-tooltip-bottom:after{content:"";position:absolute;top:-6px;left:50%;margin-left:-6px;width:12px;height:12px;background-color:#fff;border-top:1px solid #e5e7eb;border-left:1px solid #e5e7eb;transform:rotate(45deg)}.key-base{border-radius:4px;background:#f4f4f4;color:#717171;font-size:12px;font-weight:400;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.2;-webkit-user-select:none;user-select:none;border:none;padding:8px}.key-base:hover{background:#d46e381a;transform:translateY(-1px);border:1px solid rgba(212,110,56,.2);box-shadow:0 0 20px #d46e381a}.key-base:active,.key-base.selected{transform:translateY(0);background:#d46e381a;border:1px solid rgba(212,110,56,.2);box-shadow:0 0 10px #d46e3833}.key-base.selected:hover{transform:translateY(-1px);box-shadow:0 0 20px #d46e3833}.key-small{width:40px;height:40px;font-size:10px}.key-medium{width:50px;height:50px;font-size:12px}.key-large{width:60px;height:60px;font-size:14px}.key-wide{min-width:80px;height:50px}.key-flex{min-width:80px;flex:1;height:50px}.key-space{min-width:200px;height:50px}.key-tall{width:50px;height:84px}.key-function{width:55px;height:55px;font-size:12px}.key-layer{width:50px;height:50px;font-size:14px}.key-switch-mode{width:80px;height:50px;font-size:14px}.key-apply{width:200px;height:50px;font-size:16px;font-weight:500;background:#d46e38cc;color:#fff}.key-apply:hover{background:#d46e38;transform:translateY(-2px);box-shadow:0 0 20px #d46e3833}.key-apply:active{transform:translateY(0);box-shadow:0 0 10px #d46e3833}.key-word-break{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.key-word-break span{font-size:12px;font-weight:400;color:#717171}.flex-space{flex:1}.layer-switch-section,.layer-selection-section,.apply-section{transition:all .3s ease-in-out}.layer-switch-section.hidden,.layer-selection-section.hidden,.apply-section.hidden{opacity:0;transform:translateY(20px);pointer-events:none}.layer-switch-section.visible,.layer-selection-section.visible,.apply-section.visible{opacity:1;transform:translateY(0);pointer-events:auto}.layers-view{width:100%;height:100%;display:flex;justify-content:center;align-items:center;padding:10px;overflow:auto}.layers-container{display:flex;flex-direction:column;gap:20px;width:100%;max-width:1200px}.layers-content{display:flex;flex-direction:column;gap:30px}.layer-switch-section,.layer-selection-section{display:flex;flex-direction:column;gap:15px;width:100%}.section-title{font-size:14px;font-weight:300;color:#000}.switch-mode-buttons{display:flex;gap:8px}.layer-buttons{display:flex;gap:8px;flex-wrap:wrap}.apply-section{display:flex;margin-top:20px}.message-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000;animation:messageSlideIn .3s ease-out}.message-content{background:#fff9;-webkit-backdrop-filter:blur(40px);backdrop-filter:blur(40px);color:#000;padding:20px 40px;border-radius:8px;font-size:16px;font-weight:400;text-align:center;box-shadow:0 4px 20px #0003;min-width:200px;display:flex;align-items:center;gap:10px}@keyframes messageSlideIn{0%{opacity:0;transform:translate(-50%,-60%)}to{opacity:1;transform:translate(-50%,-50%)}}.advanced-view{width:100%}.advanced-view__content{width:100%;padding:0;margin:0}.advanced-view__sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}.advanced-view__section{min-width:0}.advanced-view__group-header{font-size:11px;font-weight:900;color:#64748b;text-transform:uppercase;letter-spacing:.1em;margin:0 0 10px;padding:0 4px;-webkit-user-select:none;user-select:none}.advanced-view__group{background:#fff;border:1px solid #f1f5f9;border-radius:16px;padding:0 14px}.advanced-view__row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;border-bottom:1px solid #f1f5f9}.advanced-view__row:last-child{border-bottom:none}.advanced-view__row--align-top{align-items:flex-start}.advanced-view__row-info{display:flex;align-items:flex-start;gap:12px;min-width:0}.advanced-view__row-icon{width:40px;height:40px;border-radius:14px;background:#f1f5f9;color:#334155;display:flex;align-items:center;justify-content:center;margin-top:2px;transition:background-color .2s ease,color .2s ease;flex:0 0 auto}.advanced-view__row-icon--danger{background:#fef2f2;color:#dc2626}.advanced-view__row:hover .advanced-view__row-icon:not(.advanced-view__row-icon--danger){background:#e2e8f0;color:#0f172a}.advanced-view__row-text{display:flex;flex-direction:column;gap:4px;min-width:0}.advanced-view__row-title{font-size:14px;font-weight:800;color:#0f172a;letter-spacing:.01em}.advanced-view__row-desc{font-size:12px;color:#64748b;line-height:1.4;max-width:280px}.advanced-view__row-action{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex:0 0 auto}.advanced-view__toggle{position:relative;display:inline-flex;height:26px;width:48px;align-items:center;border-radius:9999px;background:#e2e8f0;border:none;cursor:pointer;transition:background-color .2s ease}.advanced-view__toggle--on{background:#d46e38}.advanced-view__toggle-thumb{position:absolute;top:2px;left:2px;height:22px;width:22px;border-radius:9999px;background:#fff;box-shadow:0 2px 6px #0f172a1f;transition:transform .2s ease}.advanced-view__toggle--on .advanced-view__toggle-thumb{transform:translate(22px)}.advanced-view__toggle:disabled{opacity:.5;cursor:not-allowed}.advanced-view__segmented{position:relative;display:flex;align-items:center;background:#f1f5f9;padding:4px;border-radius:14px;gap:4px}.advanced-view__segmented-indicator{position:absolute;top:4px;bottom:4px;left:0;border-radius:10px;background:#fff;box-shadow:0 1px 2px #0000000d;transition:transform .2s ease,width .2s ease,opacity .2s ease;will-change:transform,width;pointer-events:none;z-index:0}.advanced-view__segmented--disabled{opacity:.45;pointer-events:none}.advanced-view__segmented-button{position:relative;z-index:1;padding:6px 14px;border-radius:10px;border:none;background:transparent;cursor:pointer;font-size:12px;font-weight:800;color:#64748b;transition:background-color .2s ease,color .2s ease,box-shadow .2s ease;white-space:nowrap}.advanced-view__segmented-button:hover:not(:disabled):not(.advanced-view__segmented-button--active){color:#334155}.advanced-view__segmented-button--active{color:#0f172a}.advanced-view__segmented-button:disabled{cursor:not-allowed}.advanced-view__segmented-button-label{font-size:11px}.advanced-view__template-controls{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:4px}.advanced-view__select-wrapper{position:relative}.advanced-view__select{appearance:none;-webkit-appearance:none;-moz-appearance:none;display:inline-block;width:180px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:8px 34px 8px 12px;font-size:12px;font-weight:800;color:#0f172a;cursor:pointer;outline:none;box-shadow:none;transition:background-color .2s ease,border-color .2s ease}.advanced-view__select:hover:not(:disabled){background:#f1f5f9;border-color:#cbd5e1}.advanced-view__select:focus,.advanced-view__select:focus-visible{outline:none;border-color:#cbd5e1;box-shadow:none}.advanced-view__select:disabled{opacity:.6;cursor:not-allowed}.advanced-view__select-icon{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:#94a3b8;pointer-events:none}.advanced-view__select::-ms-expand{display:none}.advanced-view__button-group{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.advanced-view__button{padding:8px 12px;border-radius:10px;font-size:12px;font-weight:800;cursor:pointer;border:1px solid transparent;transition:background-color .2s ease,color .2s ease,border-color .2s ease}.advanced-view__button--outline{background:#f8fafc;color:#334155;border-color:#e2e8f0}.advanced-view__button--outline:hover:not(:disabled){background:#f1f5f9;color:#0f172a}.advanced-view__button--primary{background:#0f172a;color:#fff;width:70px}.advanced-view__button--primary:hover:not(:disabled){background:#1e293b}.advanced-view__button:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 960px){.advanced-view__sections{grid-template-columns:1fr}}@media (max-width: 640px){.advanced-view__row{flex-direction:column;align-items:flex-start}.advanced-view__row-action,.advanced-view__template-controls,.advanced-view__button-group{width:100%;justify-content:flex-start}}*{margin:0;padding:0;box-sizing:border-box}html body{height:100%;min-width:1400px;min-height:920px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:url(/assets/background.png);background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed;overflow-x:auto;overflow-y:auto}#root{height:100%;min-width:1400px;min-height:920px}.App{height:100%;min-height:920px;min-width:1400px;width:100%}.copyright{position:fixed;bottom:10px;text-align:right;width:100%;font-size:14px;right:20px}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}button{font-family:inherit;outline:none;border:none;cursor:pointer}input,textarea,select{font-family:inherit;outline:none}input:focus,textarea:focus,select:focus{outline:2px solid #d46e38;outline-offset:2px}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.fade-in{animation:fadeIn .5s ease-out}.slide-in{animation:slideIn .3s ease-out}.viewport-warning{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.viewport-warning-content{background:#fff;padding:32px;border-radius:12px;box-shadow:0 8px 32px #0000004d;text-align:center;max-width:400px;margin:20px}.viewport-warning-content h3{color:#d46e38;margin-bottom:16px;font-size:20px}.viewport-warning-content p{color:#333;margin:8px 0;font-size:14px;line-height:1.5}.viewport-warning-content p.viewport-warning-current{color:#666;font-size:12px;margin-top:20px}.viewport-warning-key{background:#eaeaea;padding:2px 4px;border-radius:2px;color:#d46e38;font-family:monospace;font-weight:600;font-size:12px;margin:4px 0}@media (max-width: 640px){html{font-size:14px}}@media (max-width: 480px){html{font-size:13px}}
