@import"https://fonts.googleapis.com/css2?family=VT323&display=swap";:root{--primary: #2563eb;--primary-hover: #1d4ed8;--primary-bg: #eff6ff;--surface: #ffffff;--bg-app: #f5f8fc;--text-main: #0f172a;--text-secondary: #475569;--text-disabled: #94a3b8;--border: #e2e8f0;--success: #16a34a;--error: #dc2626;--warning: #d97706;--font-family: "Inter", "Segoe UI", "Roboto", -apple-system, sans-serif;--font-xs: 12px;--font-sm: 14px;--font-md: 16px;--font-lg: 18px;--font-xl: 24px;--font-2xl: 28px;--font-3xl: 36px;--radius-pill: 999px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 12px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--shadow-1: 0 1px 2px rgba(15, 23, 42, .06), 0 3px 10px rgba(15, 23, 42, .03);--shadow-2: 0 8px 24px rgba(15, 23, 42, .08);--shadow-3: 0 14px 36px rgba(15, 23, 42, .12);--overlay-bg: rgba(0, 0, 0, .4);--bg-secondary: #eef2f7;--bg-hover: rgba(0, 0, 0, .04)}.login-container{box-sizing:border-box;width:100%;max-width:100vw;min-height:calc(100vh - 96px);display:grid;place-items:center;padding:56px 20px;overflow-x:hidden;background:linear-gradient(180deg,#ebf4ffb8,#fffffff5 52%),#fff}.login-card{width:min(440px,calc(100vw - 40px));box-sizing:border-box;padding:32px;background:#fff;border:1px solid #d9e4f2;border-radius:8px;box-shadow:0 18px 44px #0f172a1a}.login-card-header{display:flex;align-items:center;gap:14px;margin-bottom:26px}.login-logo{width:52px;height:52px;flex:0 0 auto;border-radius:8px;object-fit:contain;padding:6px;background:#fff;border:1px solid #d9e4f2}.login-title{margin:0;color:#0f172a;font-family:var(--font-family);font-size:32px;font-weight:800;line-height:1.1}.login-form{display:grid;gap:16px}.login-card .form-group{margin:0}.login-card .form-group label{display:block;margin-bottom:8px;color:#334155;font-family:var(--font-family);font-size:14px;font-weight:700;line-height:1.2}.login-card .form-group input{width:100%;height:52px;box-sizing:border-box;padding:0 14px;color:#0f172a;background:#fff;border:1px solid #c8d5e6;border-radius:8px;font-family:var(--font-family);font-size:16px;line-height:1.2;transition:border-color .15s ease,box-shadow .15s ease}.login-card .form-group input::placeholder{color:#94a3b8}.login-card .form-group input:focus{outline:none;border-color:#1f5eea;box-shadow:0 0 0 4px #1f5eea1f}.login-card .btn-primary{width:100%;box-sizing:border-box;height:52px;padding:0 18px;background:#1f5eea;color:#fff;border:1px solid #1f5eea;border-radius:8px;font-family:var(--font-family);font-size:16px;font-weight:800;line-height:1;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,opacity .15s ease}.login-card .btn-primary:hover{background:#174dd1;border-color:#174dd1}.login-card .btn-primary:disabled{opacity:.68;cursor:wait}.login-card .error-message{min-height:20px;margin:-2px 0 0;color:#b42318;font-family:var(--font-family);font-size:14px;font-weight:700;line-height:1.35}.login-footer{margin-top:24px;padding-top:20px;border-top:1px solid #e2e8f0;text-align:center}.login-footer p{margin:0;color:#5c6f89;font-family:var(--font-family);font-size:15px;line-height:1.4}.login-footer a{color:#1f5eea;font-weight:800;text-decoration:none}.login-footer a:hover{text-decoration:underline}@media (max-width: 520px){.login-container{min-height:calc(100vh - 88px);padding:28px 16px;place-items:start center}.login-card{width:calc(100vw - 40px);padding:24px}.login-title{font-size:28px}}.signup-container{display:flex;justify-content:center;align-items:center;height:100vh;background-color:var(--bg-app)}.signup-card{background-color:var(--surface);padding:var(--space-xl);border-radius:var(--radius-md);box-shadow:var(--shadow-1);width:100%;max-width:400px}.signup-title{font-family:var(--font-family);font-size:var(--font-xl);color:var(--text-main);margin-bottom:var(--space-lg);text-align:center}.form-group{margin-bottom:var(--space-md)}.form-group label{display:block;font-family:var(--font-family);font-size:var(--font-xs);color:var(--text-secondary);margin-bottom:var(--space-xs)}.form-group input{width:100%;padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-family);font-size:var(--font-sm);box-sizing:border-box}.form-group input:focus{outline:none;border-color:var(--primary)}.btn-primary{width:100%;padding:var(--space-sm) var(--space-md);background-color:var(--primary);color:#fff;border:none;border-radius:var(--radius-pill);font-family:var(--font-family);font-size:var(--font-sm);cursor:pointer;transition:background-color .2s}.btn-primary:hover{background-color:var(--primary-hover)}.btn-primary:disabled{background-color:var(--text-disabled);cursor:not-allowed}.error-message{color:var(--error);font-size:var(--font-sm);margin-bottom:var(--space-md);min-height:20px;text-align:center}.signup-footer{margin-top:var(--space-lg);text-align:center;font-size:var(--font-sm);color:var(--text-secondary)}.signup-footer a{color:var(--primary);text-decoration:none}.signup-footer a:hover{text-decoration:underline}.hidden{display:none!important}.verification-text{font-family:var(--font-family);font-size:var(--font-sm);color:var(--text-secondary);text-align:center;margin-bottom:var(--space-lg)}.resend-container{margin-top:var(--space-md);text-align:center;font-size:var(--font-sm)}.btn-link{background:none;border:none;color:var(--primary);cursor:pointer;font-family:var(--font-family);font-size:var(--font-sm);padding:0}.btn-link:hover{text-decoration:underline}.btn-link:disabled{color:var(--text-disabled);cursor:default;text-decoration:none}.workspace-container{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:calc(100vh - 120px);background:#f4f8fd;color:#0f172a;font-family:var(--font-family);transition:grid-template-columns .18s ease}.workspace-sidebar{background:#fff;border-right:1px solid #dbe7f5;display:flex;flex-direction:column;gap:18px;padding:18px 16px;position:sticky;top:0;height:calc(100vh - 76px);min-height:640px;overflow-y:auto;align-self:start;scrollbar-width:none}.workspace-sidebar::-webkit-scrollbar{width:0;height:0}.sidebar-header{display:flex;flex-direction:column;gap:10px}.sidebar-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.workspace-section-label{color:#64748b;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.workspace-sidebar-toggle{width:30px;height:30px;border:1px solid #dbe7f5;border-radius:8px;background:#fff;color:#64748b;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.workspace-sidebar-toggle:hover{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8}.workspace-sidebar-toggle svg{transition:transform .18s ease}.workspace-mode-nav{display:grid;gap:6px}.mode-btn,.workspace-sidebar-tool-link{width:100%;min-height:38px;padding:8px 10px;border:1px solid transparent;border-radius:8px;background:transparent;color:#334155;display:flex;align-items:center;gap:9px;box-sizing:border-box;font-size:14px;font-weight:650;font-family:var(--font-family);cursor:pointer;text-align:left;text-decoration:none;transition:transform .1s ease-out,background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}.mode-btn-glyph{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;opacity:.9}.mode-btn-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mode-btn:hover,.workspace-sidebar-tool-link:hover{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.workspace-product-nav{display:grid;gap:6px;padding-top:10px;border-top:1px solid #e2e8f0}.workspace-sidebar-tool-link{color:#334155}.workspace-sidebar-tool-link:hover{background:#f8fbff;border-color:#dbeafe;color:#1d4ed8}.workspace-sidebar-tool-link:active{transform:scale(.99)}.workspace-sidebar-tool-link:focus-visible{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb29}.workspace-sidebar-tool-link.is-active{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8;box-shadow:inset 3px 0 #2563eb}.workspace-sidebar-tool-link.is-active:hover{background:#eaf3ff;border-color:#bfdbfe;color:#1d4ed8}.mode-btn.active{background:#2563eb;border-color:#2563eb;color:#fff;box-shadow:0 8px 18px #2563eb2e}.mode-nav-divider{height:1px;background:#e2e8f0;margin:4px 0}.mode-btn--trash{display:flex;align-items:center;gap:8px}.mode-btn--trash:hover{background:#fff1f2;border-color:#fecdd3;color:#be123c}.mode-btn--trash.active{background:#e11d48;border-color:#e11d48;color:#fff;box-shadow:0 8px 18px #e11d4829}.folder-tree{min-height:0}.workspace-main{min-width:0;display:flex;flex-direction:column;position:relative;background:linear-gradient(180deg,#ffffffd1,#f4f8fde6 280px),#f4f8fd}.main-header{background:#fff;border-bottom:1px solid #dbe7f5;display:grid;grid-template-columns:minmax(220px,1fr) max-content;gap:24px;align-items:center;box-sizing:border-box;min-height:92px;padding:18px 24px;position:relative;z-index:20}.workspace-title-block{min-width:0}.workspace-title{margin:0;color:#0f172a;font-size:28px;line-height:1.15;font-weight:780;letter-spacing:0}.workspace-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}.workspace-header-create-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto}.workspace-search-block[hidden],.workspace-header-create-actions[hidden]{display:none!important}.workspace-action-btn{min-height:38px;padding:8px 12px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-family:var(--font-family);font-size:14px;line-height:1;font-weight:720;white-space:nowrap;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}.workspace-action-btn--primary{border:1px solid #2563eb;background:#2563eb;color:#fff;box-shadow:0 8px 18px #2563eb24}.workspace-action-btn--primary:hover{background:#1d4ed8;border-color:#1d4ed8}.workspace-action-btn--secondary{border:1px solid #cbd5e1;background:#fff;color:#1e293b}.workspace-action-btn--secondary:hover{border-color:#93c5fd;background:#eff6ff;color:#1d4ed8}.workspace-action-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.workspace-action-icon{flex-shrink:0}.workspace-search-block{width:clamp(280px,34vw,440px);min-width:240px;display:flex;flex-direction:column;gap:0}.workspace-search-block>.workspace-section-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.workspace-search-row{position:relative;min-width:0}#workspace-search-input{width:100%;min-height:44px;padding:9px 42px 9px 14px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#0f172a;font-size:15px;font-family:var(--font-family);box-sizing:border-box}#workspace-search-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}#workspace-search-clear{position:absolute;top:50%;right:10px;transform:translateY(-50%);width:26px;height:26px;border-radius:999px;border:1px solid #dbe7f5;background:#f8fafc;color:#64748b;font-size:14px;line-height:1;cursor:pointer}#workspace-search-clear:hover{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.breadcrumb{max-width:100%;min-height:28px;display:flex;align-items:center;gap:0;overflow:visible;color:#475569;font-size:15px;font-weight:600;margin-top:6px;white-space:nowrap}.breadcrumb-item{min-width:0;max-width:clamp(64px,16vw,24ch);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:0;background:transparent;color:inherit;display:inline-block;flex:0 0 auto;padding:2px 1px;font:inherit;line-height:1.35;text-align:left;cursor:pointer}.breadcrumb-item[aria-current=page]{max-width:clamp(96px,24vw,32ch);color:#0f172a;font-weight:720}.breadcrumb-item:hover,.breadcrumb-overflow-btn:hover{color:#1d4ed8}.breadcrumb-separator{flex:0 0 auto;margin:0 7px;color:#94a3b8}.breadcrumb-overflow-btn{min-width:30px;height:24px;padding:0 8px 2px;border:1px solid #dbe7f5;border-radius:999px;background:#f8fbff;color:#64748b;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;font:inherit;line-height:1;cursor:pointer}.breadcrumb-overflow{position:relative;display:inline-flex;flex:0 0 auto;align-items:center}.breadcrumb-overflow-menu{position:absolute;top:calc(100% + 8px);left:0;z-index:80;min-width:210px;max-width:min(320px,72vw);max-height:260px;overflow-y:auto;padding:6px;border:1px solid #dbe7f5;border-radius:8px;background:#fff;box-shadow:0 16px 36px #0f172a29}.breadcrumb-overflow-menu[hidden]{display:none}.breadcrumb-overflow-menu-item{width:100%;min-height:34px;padding:7px 9px;border:0;border-radius:6px;background:transparent;color:#334155;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:inherit;font-size:14px;line-height:1.25;text-align:left;cursor:pointer}.breadcrumb-overflow-menu-item:hover,.breadcrumb-overflow-menu-item:focus{outline:none;background:#eff6ff;color:#1d4ed8}.path-input-shake{animation:path-shake .3s ease-in-out}@keyframes path-shake{0%{transform:translate(0)}25%{transform:translate(-4px)}50%{transform:translate(4px)}75%{transform:translate(-3px)}to{transform:translate(0)}}.view-options{display:flex;align-items:center;justify-content:flex-end}.workspace-container--sidebar-collapsed{grid-template-columns:64px minmax(0,1fr)}.workspace-container--sidebar-collapsed .workspace-sidebar{padding:14px 10px;gap:14px;overflow-x:hidden}.workspace-container--sidebar-collapsed .sidebar-title-row{justify-content:center}.workspace-container--sidebar-collapsed .sidebar-title-row .workspace-section-label,.workspace-container--sidebar-collapsed .folder-tree,.workspace-container--sidebar-collapsed .mode-nav-divider,.workspace-container--sidebar-collapsed .mode-btn-label,.workspace-container--sidebar-collapsed .workspace-product-nav .workspace-section-label{display:none}.workspace-container--sidebar-collapsed .workspace-sidebar-toggle svg{transform:rotate(180deg)}.workspace-container--sidebar-collapsed .workspace-mode-nav{gap:8px}.workspace-container--sidebar-collapsed .mode-btn,.workspace-container--sidebar-collapsed .workspace-sidebar-tool-link{min-height:42px;justify-content:center;padding:0}.workspace-container--sidebar-collapsed .workspace-sidebar-tool-link.is-active{box-shadow:inset 0 -3px #2563eb}.workspace-container--sidebar-collapsed .workspace-product-nav{padding-top:10px;border-top:1px solid #e2e8f0}.workspace-container--sidebar-collapsed .mode-btn--trash{gap:0}.workspace-content-shell{flex:1;min-width:0;padding:24px}.items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;align-content:start}.grid-item{min-height:112px;background:#fffffff0;border:1px solid #dbe7f5;border-radius:8px;padding:16px;display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;align-items:center;cursor:pointer;position:relative;z-index:1;box-shadow:0 1px 2px #0f172a0a;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.grid-item:hover{border-color:#93c5fd;box-shadow:0 10px 24px #0f172a14;transform:translateY(-2px)}.grid-item--renaming,.grid-item--renaming:hover{border-color:#93c5fd;box-shadow:0 0 0 3px #2563eb1a,0 8px 22px #0f172a12;transform:none}.grid-item.drag-over{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb29,0 10px 24px #2563eb1f}.grid-item.shake{animation:item-shake .3s ease-in-out}@keyframes item-shake{0%{transform:translate(0)}25%{transform:translate(-4px)}50%{transform:translate(4px)}75%{transform:translate(-3px)}to{transform:translate(0)}}.grid-item.grid-item--preenter{opacity:0;transform:translateY(8px)}.grid-item.grid-item--enter{animation:workspace-card-enter .28s cubic-bezier(.22,.61,.36,1) both;animation-delay:var(--enter-delay, 0ms)}@keyframes workspace-card-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.item-icon{width:44px;height:44px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#2563eb;background:#eff6ff}.study-item .item-icon{color:#1d4ed8;background:#e0f2fe}.item-info{min-width:0;display:flex;flex-direction:column;gap:4px;text-align:left}.item-kicker{display:none;color:#64748b;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.item-title{display:block;color:#0f172a;font-size:15px;line-height:1.35;font-weight:720;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-meta{color:#64748b;font-size:13px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-title-input{width:min(100%,calc((var(--rename-input-ch, 16) * 1ch) + 22px));max-width:100%;min-height:34px;margin:-4px 0 -2px;padding:4px 8px;border:1px solid #2563eb;border-radius:8px;background:#fff;color:#0f172a;box-shadow:0 0 0 3px #2563eb1f;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-size:15px;font-weight:720;line-height:1.35;font-family:var(--font-family);outline:none}.item-error{min-height:0;color:#dc2626;font-size:12px;line-height:1.35}.new-item-card{display:none}.new-item-card .item-icon{background:#2563eb;color:#fff;font-size:24px;font-weight:650}.new-item-card:hover{background:#eff6ff}.workspace-empty-state{grid-column:1 / -1;min-height:132px;border:1px solid #dbe7f5;border-radius:8px;background:#ffffffdb;color:#64748b;display:flex;align-items:center;justify-content:center;font-size:14px;box-shadow:0 1px 2px #0f172a09}.workspace-empty-state--private{min-height:118px}.grid-item--trashed{opacity:.68;background:#f8fafc}.grid-item--trashed:hover{opacity:.92}.form-error{margin-top:6px;min-height:14px;color:#dc2626;font-size:12px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a6b;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.modal-card{width:100%;max-width:450px;background:#fff;border:1px solid #dbe7f5;border-radius:8px;box-shadow:0 24px 52px #0f172a2e;display:flex;flex-direction:column}.modal-header{padding:16px 20px;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center;cursor:move}.modal-header h3{margin:0;color:#0f172a;font-size:18px}.modal-close{width:32px;height:32px;border:none;border-radius:8px;background:transparent;color:#64748b;font-size:22px;cursor:pointer}.modal-close:hover{background:#eff6ff;color:#1d4ed8}.modal-body{padding:20px}.modal-footer{padding:14px 20px;border-top:1px solid #e2e8f0;display:flex;justify-content:flex-end;gap:10px}.modal-title-group{display:flex;flex-direction:column;gap:3px}.modal-eyebrow{display:none;color:#64748b;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.modal-title{margin:0}.btn-text,.btn-primary,.btn-danger{min-height:36px;padding:8px 14px;border-radius:8px;font-size:14px;font-weight:650;font-family:var(--font-family);cursor:pointer}.btn-text{border:1px solid transparent;background:transparent;color:#475569}.btn-text:hover{background:#f1f5f9;color:#0f172a}.btn-primary{border:1px solid #2563eb;background:#2563eb;color:#fff}.btn-primary:hover{background:#1d4ed8}.btn-danger{border:1px solid #dc2626;background:#dc2626;color:#fff}.action-card,.move-card,.confirm-card{max-width:420px}.action-body{display:grid;gap:10px}.action-btn{min-height:42px;border:1px solid #dbe7f5;background:#fff;color:#0f172a;padding:10px 12px;border-radius:8px;font-size:14px;font-weight:650;text-align:left;cursor:pointer}.action-btn:hover{border-color:#93c5fd;background:#eff6ff}.action-btn.danger{border-color:#fecaca;color:#dc2626}.action-btn.danger:hover{background:#fef2f2}.confirm-text{margin:0;color:#334155;font-size:14px;line-height:1.6}.trash-action-popup{position:absolute;z-index:9999;min-width:170px;background:#fff;border:1px solid #dbe7f5;border-radius:8px;box-shadow:0 18px 36px #0f172a29;overflow:hidden}.trash-action-btn{display:block;width:100%;padding:10px 14px;border:none;background:transparent;color:#0f172a;text-align:left;cursor:pointer;font-size:14px}.trash-action-btn:hover{background:#eff6ff}.trash-action-btn--delete{color:#dc2626}.trash-action-btn--delete:hover{background:#fef2f2}.infinite-scroll-sentinel{display:block;height:1px;grid-column:1 / -1;pointer-events:none}@media (prefers-reduced-motion: reduce){.grid-item,.mode-btn,.workspace-sidebar-tool-link,.workspace-action-btn,#workspace-search-input,.workspace-container,.workspace-sidebar-toggle,.workspace-sidebar-toggle svg{transition:none}.grid-item.grid-item--preenter,.grid-item.grid-item--enter{animation:none;opacity:1;transform:none}}@media (max-width: 900px){.workspace-container{display:flex;flex-direction:column;min-height:100vh}.workspace-sidebar{position:static;height:auto;width:100%;min-height:0;padding:14px 16px;border-right:none;border-bottom:1px solid #dbe7f5;box-sizing:border-box}.workspace-container--sidebar-collapsed .workspace-sidebar{padding:14px 16px}.workspace-container--sidebar-collapsed .sidebar-title-row .workspace-section-label{display:block}.workspace-container--sidebar-collapsed .mode-btn-label{display:inline}.workspace-container--sidebar-collapsed .mode-nav-divider,.workspace-container--sidebar-collapsed .folder-tree{display:none}.workspace-container--sidebar-collapsed .sidebar-title-row{justify-content:space-between}.workspace-container--sidebar-collapsed .workspace-sidebar-toggle svg{transform:none}.workspace-container--sidebar-collapsed .mode-btn,.workspace-container--sidebar-collapsed .workspace-sidebar-tool-link{min-height:38px;justify-content:flex-start;padding:8px 10px}.workspace-mode-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.mode-nav-divider{display:none}.mode-btn--trash{grid-column:span 2}.folder-tree{display:none}.main-header{grid-template-columns:1fr;gap:12px;min-height:0;padding:18px 16px 16px}.workspace-header-actions{justify-content:space-between;gap:12px;align-items:center}.workspace-search-block{width:100%}.breadcrumb{min-height:0;white-space:nowrap;flex-wrap:nowrap;font-size:15px;margin-top:8px}.view-options{justify-content:flex-end}.workspace-content-shell{padding:16px}.items-grid{grid-template-columns:1fr;gap:12px}.grid-item{min-height:96px}}@media (max-width: 520px){.workspace-title{font-size:24px}.workspace-header-actions{align-items:stretch;flex-direction:column}.workspace-action-btn{width:100%}.workspace-search-block{width:100%;min-width:0}.view-options{justify-content:flex-start}.workspace-mode-nav{grid-template-columns:1fr}.mode-btn--trash{grid-column:auto}.grid-item{grid-template-columns:40px minmax(0,1fr);padding:14px}.item-icon{width:40px;height:40px}}.study-container{display:grid;--splitter-width: 8px;--study-left-width: 240px;--study-right-width: 320px;grid-template-columns:var(--study-left-width) var(--splitter-width) 1fr var(--splitter-width) var(--study-right-width);background-color:var(--bg-app);font-family:var(--font-family);margin-bottom:60px}.study-sidebar,.study-right-panel{background-color:var(--surface);display:flex;flex-direction:column;min-height:0;position:relative;z-index:3}.study-right-panel{border-left:none}.panel-splitter{width:var(--splitter-width);cursor:col-resize;background:linear-gradient(to right,transparent,rgba(0,0,0,.08),transparent);position:relative;z-index:2}.panel-splitter:hover:after{opacity:1}.panel-splitter:after{content:"";position:absolute;top:0;bottom:0;left:2px;right:2px;background:#00000014;opacity:0;transition:opacity .2s}.panel-header{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;position:relative;z-index:4}.panel-header-left{display:flex;align-items:center;gap:var(--space-sm)}.btn-back{font-size:var(--font-xs);padding:var(--space-xs) var(--space-sm)}.panel-header h3{font-size:var(--font-sm);margin:0}.panel-actions{display:flex;gap:var(--space-xs);position:relative;z-index:5}.chapter-list{flex:1;min-height:0}.chapter-empty{padding:var(--space-md);color:var(--text-secondary);font-size:var(--font-sm)}.chapter-item{padding:var(--space-sm) var(--space-md);cursor:pointer;display:flex;gap:var(--space-sm);font-size:var(--font-sm);border-bottom:1px solid var(--bg-app)}.chapter-item:hover{background-color:var(--primary-bg)}.chapter-item.active{background-color:var(--primary-bg);color:var(--primary);font-weight:600}.chapter-order{color:var(--text-secondary);min-width:20px}.study-center-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-lg);background-color:var(--bg-app);min-height:0;gap:var(--space-lg)}.board-mount{width:100%;flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.board-mount>.chessboard{width:100%;height:100%;aspect-ratio:1 / 1;box-shadow:var(--shadow-2)}.board-mount>.chessboard-v2{width:66.6667%;height:auto;aspect-ratio:1 / 1;margin-left:auto;margin-right:auto;box-shadow:var(--shadow-2)}.board-mount .chessboard .square{aspect-ratio:1 / 1}.board-controls{margin-top:var(--space-lg);display:flex;gap:var(--space-md)}.panel-tabs{display:flex;border-bottom:1px solid var(--border)}.tab-btn{flex:1;padding:var(--space-sm);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;font-size:var(--font-xs);font-weight:600;color:var(--text-secondary)}.tab-btn.active{color:var(--primary);border-bottom-color:var(--primary)}.tab-content{display:none;flex:1;padding:var(--space-md);min-height:0}.tab-content.active{display:flex;flex-direction:column}.tab-content#tab-pgn{overflow:hidden}.analysis-module{margin-bottom:var(--space-md)}.move-tree{font-size:var(--font-sm);line-height:1.6;flex:1;min-height:0}.move-tree-row{display:grid;grid-template-columns:40px 1fr 1fr;align-items:center;gap:var(--space-xs);margin-bottom:var(--space-xs)}.move-tree-number{color:var(--text-secondary);font-variant-numeric:tabular-nums}.move-tree-move{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-panel);padding:var(--space-xxs) var(--space-xs);text-align:left;cursor:pointer}.move-tree-move:disabled{opacity:.4;cursor:default}.move-tree-move:not(:disabled):hover{background:var(--bg-app)}.pgn-comment{margin-top:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm);flex-shrink:0}.pgn-comment-tabs{display:flex;gap:var(--space-xs);align-items:center}.pgn-tab-btn{border:1px solid var(--border);border-radius:999px;background:var(--bg-panel);padding:4px 10px;font-size:var(--font-xs);cursor:pointer}.pgn-tab-btn.active{background:var(--text-primary);color:var(--bg-app)}.pgn-comment-panel{display:none;flex-direction:column;gap:var(--space-sm)}.pgn-comment-panel.active{display:flex}#pgn-comment-input{width:100%;min-height:70px;padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-family);font-size:var(--font-sm);resize:vertical}#pgn-fen-display{width:100%;min-height:70px;padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:var(--font-sm);resize:vertical}.move-tree-empty,.board-empty,.discussion-empty{color:var(--text-secondary);font-size:var(--font-sm)}.btn-icon{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-sm);cursor:pointer}.btn-icon:hover{background-color:var(--bg-app)}@media (max-width: 980px){.study-container{display:flex;flex-direction:column;min-height:auto;margin-bottom:0}.panel-splitter{display:none}.study-sidebar,.study-right-panel,.study-center-panel{width:100%;min-height:0}.study-sidebar{order:2;max-height:none}.study-center-panel{order:1;justify-content:flex-start;padding:var(--space-md);gap:var(--space-md)}.study-right-panel{order:3;border-left:0}.chapter-list{max-height:260px;overflow:auto}.board-mount{flex:0 1 auto;overflow:visible}.board-mount>.chessboard,.board-mount>.chessboard-v2{width:min(92vw,520px);height:auto}.board-controls{width:min(92vw,520px);margin-top:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-xs)}.board-controls .btn-icon{min-width:0;min-height:36px}.panel-tabs{position:sticky;top:0;z-index:8;background:var(--surface)}.tab-content{padding:var(--space-sm)}.tab-content.active{min-height:auto}.analysis-module{margin-bottom:var(--space-sm)}}@media (max-width: 560px){.panel-header{align-items:flex-start;flex-direction:column;gap:var(--space-sm)}.panel-actions{width:100%;display:grid;grid-template-columns:1fr auto}.panel-actions .btn-icon,.btn-back{min-height:36px}.chapter-item{padding:var(--space-sm)}.panel-tabs{overflow-x:auto}.tab-btn{min-width:max-content;padding:var(--space-sm) var(--space-md)}.move-tree-row{grid-template-columns:34px minmax(0,1fr) minmax(0,1fr)}.pgn-comment-tabs{flex-wrap:wrap}}.discussion-container{display:flex;flex-direction:column;height:100%}.discussion-thread-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-md);padding-bottom:var(--space-md)}.discussion-thread-item{border-bottom:1px solid var(--bg-app);padding-bottom:var(--space-sm)}.discussion-thread-header{display:flex;justify-content:space-between;font-size:var(--font-xs);margin-bottom:var(--space-xs)}.discussion-thread-author{font-weight:600;color:var(--text-main)}.discussion-thread-date{color:var(--text-secondary)}.discussion-thread-content{font-size:var(--font-sm);color:var(--text-main);line-height:1.4}.discussion-thread-actions{margin-top:var(--space-xs);display:flex;gap:var(--space-md)}.discussion-input-area{border-top:1px solid var(--border);padding-top:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm)}#discussion-input{width:100%;min-height:80px;padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-family);font-size:var(--font-sm);resize:vertical}.discussion-input-controls{display:flex;justify-content:flex-end}.btn-xs{padding:2px 4px;font-size:11px}.app-header{display:flex;justify-content:space-between;align-items:center;padding:0 24px;height:100px;background:#fffffff5;border-bottom:1px solid var(--border);font-family:var(--font-family);position:sticky;top:0;z-index:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.header-left{display:flex;align-items:center;gap:18px;min-width:0}.header-left .logo{display:flex;align-items:center;text-decoration:none;color:var(--text-main);height:100%}.header-left .logo-image{height:100px;width:auto;display:block}.header-center{display:flex;align-items:center;gap:2px}.header-center .nav-link{font-size:16px;font-weight:600;color:var(--text-secondary);text-decoration:none;padding:8px 12px;border-radius:8px;transition:background-color .2s,color .2s}.header-center .nav-link:hover{background-color:var(--primary-bg);color:var(--primary)}.header-right .username{font-size:14px;font-weight:600;color:var(--text-main);text-decoration:none}.header-right .nav-link{font-size:14px;font-weight:600;color:var(--primary);text-decoration:none}.header-right{display:flex;align-items:center;gap:10px}.bell-wrapper{position:relative;display:flex;align-items:center}.bell-btn{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid #d8dee7;background:#f8fafc;border-radius:10px;cursor:pointer;color:var(--text-secondary);box-shadow:0 1px 2px #0f172a0d;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s,transform .15s}.bell-btn:hover{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8;box-shadow:0 2px 6px #2563eb29;transform:translateY(-1px)}.bell-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #2563eb33}.bell-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#ef4444;color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center;pointer-events:none}.bell-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:340px;max-height:min(520px,calc(100vh - 112px));background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-2);z-index:1100;overflow-y:auto;overscroll-behavior:contain}.bell-dropdown-header{padding:12px 16px 8px;font-size:12px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid #f1f5f9}.bell-empty{padding:20px 16px;font-size:14px;color:#94a3b8;text-align:center}.bell-item{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:10px 16px;border:none;background:transparent;cursor:pointer;text-align:left;transition:background .12s;border-bottom:1px solid #f1f5f9;gap:2px}.bell-item:focus-visible{outline:none;background:#eff6ff;box-shadow:inset 3px 0 #2563eb}.bell-item:hover{background:#eff6ff}.bell-item-label{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;color:#2563eb;text-transform:uppercase;letter-spacing:.04em}.bell-item-sender{font-size:13px;font-weight:600;color:var(--text-main);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bell-item-content{font-size:13px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;max-width:100%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.bell-open-chat{display:block;width:100%;padding:10px 16px;border:none;background:transparent;cursor:pointer;font-size:13px;font-weight:600;color:var(--primary);text-align:center;transition:background .12s}.bell-open-chat:hover{background:#eff6ff}.bell-item--broadcast{background:#f8fafc;border-left:3px solid #2563eb}.bell-item--broadcast:hover{background:#eff6ff}.bell-item-broadcast-label{display:flex;align-items:center;gap:4px;font-size:10px;font-weight:700;color:#2563eb;text-transform:uppercase;letter-spacing:.04em;margin-bottom:1px}.bell-item--workspace{background:#fff;border-left:3px solid #166b5c}.bell-item--workspace:hover{background:#f1f5f4}.bell-item--workspace .bell-item-label{color:#166b5c}.bell-item--seen{background:#f8fafc;opacity:.68}.challenge-wrapper{position:relative;display:flex;align-items:center}.challenge-btn{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid #d8dee7;background:#f8fafc;border-radius:10px;cursor:pointer;color:var(--text-secondary);box-shadow:0 1px 2px #0f172a0d;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s,transform .15s}.challenge-btn:hover{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8;box-shadow:0 2px 6px #2563eb29;transform:translateY(-1px)}.challenge-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #2563eb33}.header-action-icon{display:block}.challenge-indicator{position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:999px;background:#ef4444;border:2px solid #f8fafc;pointer-events:none}.challenge-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:260px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-2);z-index:1100;overflow:hidden}.challenge-dropdown-header{padding:10px 16px 8px;font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid #f1f5f9}.challenge-info{padding:10px 16px;border-bottom:1px solid #f1f5f9}.challenge-opponent{font-size:14px;color:var(--text-main);margin-bottom:4px}.challenge-meta{font-size:12px;color:#64748b;display:flex;align-items:center;gap:6px}.challenge-status-badge{padding:1px 6px;border-radius:4px;font-weight:600;font-size:11px}.challenge-status-badge--ongoing{background:#dcfce7;color:#16a34a}.challenge-status-badge--waiting{background:#fee2e2;color:#dc2626}.challenge-actions{padding:8px 12px;display:flex;gap:8px}.challenge-go-btn{flex:1;padding:7px 10px;font-size:13px;font-weight:600;color:#fff;background:var(--primary);border:none;border-radius:7px;cursor:pointer;transition:background .15s}.challenge-go-btn:hover{background:#1a55e3}.challenge-decline-btn{padding:7px 10px;font-size:13px;font-weight:600;color:#ef4444;background:#fee2e2;border:none;border-radius:7px;cursor:pointer;transition:background .15s}.challenge-decline-btn:hover{background:#fecaca}.nav-dropdown{position:relative;display:flex;align-items:center}.nav-link--dropdown{cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:4px}.nav-link--dropdown:after{content:"▾";font-size:12px;opacity:.55}.nav-dropdown-menu{display:none;position:absolute;top:100%;left:50%;transform:translate(-50%);background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-2);min-width:170px;z-index:1100;padding:6px 0;white-space:nowrap}.nav-dropdown:hover .nav-dropdown-menu{display:block}.nav-dropdown-item{display:block;padding:10px 16px;font-size:14px;font-weight:500;color:var(--text-main);text-decoration:none;transition:background .12s,color .12s}.nav-dropdown-item:hover{background:#eff6ff;color:var(--primary)}@media (max-width: 1080px){.app-header{padding:0 14px}.header-center{gap:0}.header-center .nav-link{padding:7px 10px;font-size:14px}}@media (max-width: 860px){.app-header{height:80px}.header-left{gap:10px}.header-left .logo-image{height:72px}.header-center .nav-link{padding:6px 8px;font-size:13px}}@media (max-width: 768px){.app-header{height:auto;min-height:72px;padding:8px 12px;align-items:flex-start;gap:8px;flex-wrap:wrap;box-sizing:border-box}.header-left{width:100%;min-width:0;gap:8px;align-items:center}.header-left .logo{flex:0 0 auto}.header-left .logo-image{height:52px;max-width:128px;object-fit:contain}.header-center{flex:1 1 0;min-width:0;justify-content:flex-start;gap:2px;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.header-center::-webkit-scrollbar{display:none}.header-center .nav-link,.header-right .nav-link,.header-right .username{font-size:13px;line-height:1.2}.header-center .nav-link{flex:0 0 auto;padding:6px 7px}.header-right{width:100%;min-width:0;justify-content:flex-end}.bell-dropdown{right:-54px;width:min(340px,calc(100vw - 24px));max-height:min(480px,calc(100vh - 116px))}}@media (max-width: 420px){.app-header{padding:8px}.header-left .logo-image{height:46px;max-width:112px}.header-center .nav-link{font-size:12px;padding:5px}}.app-header{height:84px;padding:0 28px;background:#fffffffa;border-bottom-color:#dfe3e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.header-left{gap:22px}.header-left .logo-image{height:78px}.header-center{gap:4px}.header-center .nav-link,.nav-link--dropdown{border-radius:7px;color:#4f5a62;font-size:15px;font-weight:650;padding:9px 11px}.header-center .nav-link:hover,.nav-dropdown:hover .nav-link--dropdown{background-color:#f1f5f4;color:#166b5c}.header-right{gap:8px}.app-header--auth{justify-content:center}.app-header--auth .header-left{width:auto;justify-content:center}.app-header--auth .logo-image{height:72px}.header-right .username{display:inline-flex;align-items:center;gap:8px;border:1px solid #dfe3e6;border-radius:7px;color:#202124;font-size:15px;padding:9px 11px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.username-label{min-width:0;overflow:hidden;text-overflow:ellipsis}.header-role-badge{display:inline-flex;align-items:center;flex:0 0 auto;min-height:18px;padding:2px 8px;border-radius:999px;color:#fff;font-size:11px;font-weight:800;line-height:1;text-transform:uppercase}.header-role-badge--admin{background:#3aa858}.header-role-badge--editor{background:#2563eb}.header-right .username:hover{background:#f1f5f4;border-color:#c9d3cf}.header-right .nav-link{color:#166b5c}.bell-btn,.challenge-btn{width:38px;height:38px;border-color:#dfe3e6;border-radius:7px;background:#fff;box-shadow:none}.bell-btn:hover,.challenge-btn:hover{background:#f1f5f4;border-color:#c9d3cf;color:#166b5c;box-shadow:none;transform:none}.bell-btn:focus-visible,.challenge-btn:focus-visible{box-shadow:0 0 0 3px #166b5c29}.bell-dropdown,.challenge-dropdown,.nav-dropdown-menu{border-color:#dfe3e6;border-radius:8px;box-shadow:0 16px 40px #2021241f}.bell-open-chat,.challenge-go-btn{color:#166b5c}.challenge-go-btn{background:#166b5c;color:#fff}.challenge-go-btn:hover{background:#0f584b}.bell-item:hover,.nav-dropdown-item:hover{background:#f1f5f4;color:#166b5c}@media (max-width: 860px){.app-header{height:auto;min-height:64px;padding:8px 12px}.header-left .logo-image{height:48px}.app-header--auth{min-height:72px;padding:8px 16px;align-items:center}.app-header--auth .header-left{width:auto}.app-header--auth .logo-image{height:52px;max-width:140px}}@media (max-width: 768px){.app-header{align-items:flex-start;gap:8px;flex-wrap:wrap}.header-left{width:100%;gap:8px}.header-left .logo{flex:0 0 auto}.header-center{flex:1 1 0;min-width:0;justify-content:flex-start;flex-wrap:nowrap;gap:2px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.header-center::-webkit-scrollbar{display:none}.header-center .nav-link,.nav-link--dropdown{flex:0 0 auto;padding:6px 7px;font-size:13px;line-height:1.2}.header-right{width:100%;justify-content:flex-end}.header-right .username{max-width:min(180px,48vw);font-size:13px;padding:7px 9px}}@media (max-width: 420px){.header-left{flex-wrap:wrap}.header-center{order:3;flex-basis:100%;width:100%}.header-center .nav-link,.nav-link--dropdown{padding:4px 5px;font-size:11px}.bell-dropdown{right:-48px;width:calc(100vw - 16px)}}.pref-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2100;background:#0f172a61;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.pref-dialog-content{position:fixed;top:50%;left:50%;z-index:2110;width:min(720px,calc(100vw - 32px));max-height:min(760px,calc(100vh - 36px));transform:translate(-50%,-50%);overflow:hidden;border:1px solid #dbe7f5;border-radius:14px;background:#fff;box-shadow:0 28px 80px #0f172a3d,0 2px 10px #0f172a14;color:#0f172a}.pref-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 24px 18px;border-bottom:1px solid #e2e8f0}.pref-dialog-title{margin:0;color:#0f172a;font-size:22px;font-weight:820;letter-spacing:0}.pref-dialog-close{width:38px;height:38px;border:1px solid #dbe7f5;border-radius:10px;background:#fff;color:#475569;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.pref-dialog-close:hover{background:#f8fafc;color:#0f172a}.pref-dialog-body{max-height:calc(min(760px,calc(100vh - 36px)) - 86px);overflow-y:auto;padding:18px 24px 24px}.pref-section{padding:16px 0;border-bottom:1px solid #eef2f7}.pref-section:last-child{border-bottom:none}.pref-section-heading{display:flex;align-items:center;gap:12px;margin-bottom:12px}.pref-section-heading--inline{margin-bottom:0}.pref-section-heading>svg{color:#166b5c}.pref-section-heading h3{margin:0;color:#0f172a;font-size:15px;font-weight:820;letter-spacing:0}.pref-setting-row{display:flex;align-items:center;justify-content:space-between;gap:18px}.pref-toggle{position:relative;width:56px;height:32px;border:1px solid #cbd5e1;border-radius:999px;background:#e2e8f0;cursor:pointer;transition:background .16s ease,border-color .16s ease}.pref-toggle[data-state=on]{background:#13745b;border-color:#13745b}.pref-toggle-knob{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:999px;background:#fff;box-shadow:0 2px 6px #0f172a29;transition:transform .16s ease}.pref-toggle[data-state=on] .pref-toggle-knob{transform:translate(24px)}.pref-segment,.pref-theme-card,.pref-select-trigger{font-family:var(--font-family, "Inter", "Segoe UI", sans-serif)}.pref-theme-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.pref-theme-card{min-width:0;min-height:78px;border:1px solid #dbe7f5;border-radius:10px;background:#fff;color:#334155;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:8px;padding:10px;cursor:pointer;font-size:12px;font-weight:760;text-align:left}.pref-theme-card.is-active{border-color:#2563eb;background:#eff6ff;color:#1d4ed8;box-shadow:0 0 0 2px #2563eb1f}.pref-theme-swatch{width:44px;height:24px;display:grid;grid-template-columns:1fr 1fr;overflow:hidden;border:1px solid rgba(15,23,42,.13);border-radius:6px}.pref-segmented{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pref-segment{min-height:54px;border:1px solid #dbe7f5;border-radius:10px;background:#fff;color:#334155;padding:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;text-align:center}.pref-segment strong{color:#0f172a;font-size:14px;font-weight:820}.pref-segment.is-active{border-color:#2563eb;background:#eff6ff;box-shadow:0 0 0 2px #2563eb1f}.pref-select-trigger{width:100%;min-height:42px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#0f172a;padding:0 12px;display:inline-flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:760}.pref-select-content{z-index:2300;min-width:var(--radix-select-trigger-width);max-height:280px;overflow:hidden;border:1px solid #dbe7f5;border-radius:10px;background:#fff;box-shadow:0 18px 42px #0f172a29}.pref-select-item{min-height:38px;padding:8px 36px 8px 12px;color:#0f172a;font-size:13px;font-weight:700;display:flex;align-items:center;position:relative;cursor:pointer}.pref-select-item span{margin-left:8px;color:#64748b;font-size:12px;font-weight:600}.pref-select-item[data-highlighted]{outline:none;background:#eff6ff}.pref-select-item [data-radix-select-item-indicator]{position:absolute;right:12px;color:#2563eb}.preference-trigger{flex:0 0 auto}@media (max-width: 680px){.pref-dialog-content{width:calc(100vw - 20px)}.pref-theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pref-segmented{grid-template-columns:1fr}}body{background:var(--bg-app);margin:0}main{background:transparent}.app-footer{width:100%;box-sizing:border-box;background:#f8fafc;border-top:1px solid var(--border);color:var(--text-main);padding:32px 24px 20px;margin-top:auto}.app-footer:before{display:none}.footer-content{display:grid;grid-template-columns:1.2fr 1fr;gap:28px;max-width:1200px;margin:0 auto 18px}.footer-main{display:flex;align-items:center}.footer-brand{display:flex;align-items:center;gap:12px}.brand-icon{font-size:30px;color:var(--primary);text-shadow:none;animation:none}.brand-text{display:flex;flex-direction:column;gap:2px}.brand-title{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-weight:600;margin:0}.brand-names{font-size:20px;font-weight:700;margin:0;color:var(--text-main);background:none;-webkit-text-fill-color:unset}.footer-contact{display:flex;flex-direction:column;gap:10px}.footer-heading{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin:0 0 4px;font-weight:700}.contact-item{display:flex;align-items:center;gap:8px;font-size:13px;line-height:1.5}.contact-icon{width:16px;height:16px;color:var(--primary);opacity:1}.contact-label,.contact-text,.footer-copyright{color:var(--text-secondary)}.contact-link{color:var(--text-main);text-decoration:none;transition:color .2s;position:static}.contact-link:after{display:none}.contact-link:hover{color:var(--primary)}.footer-bottom{max-width:1200px;margin:0 auto;padding-top:10px}.footer-divider{height:1px;background:var(--border);margin-bottom:10px}.footer-links{display:flex;justify-content:center;gap:14px;margin-bottom:8px}.footer-link{font-size:13px;color:var(--text-secondary);text-decoration:none;transition:color .2s}.footer-link:after{display:none}.footer-link:hover{color:var(--primary)}.footer-copyright{text-align:center;font-size:12px;margin:0}@media (max-width: 1024px){.footer-content{grid-template-columns:1fr;gap:20px}}@media (max-width: 680px){.app-footer{padding:24px 14px 16px}.brand-names{font-size:17px}}@media (max-width: 480px){.app-footer{padding:1.25rem 1rem 1rem}}.create-modal-input{font-weight:600}.node-actions-body{display:grid;gap:8px}.node-actions-meta{display:grid;gap:3px;padding:8px 10px;margin-bottom:2px;border-radius:8px;background:#f8fafc;border:1px solid #e2e8f0;color:#64748b;font-size:12px;line-height:1.35}.action-label{min-width:0}.move-modal-body{position:relative}.move-modal-input.shake{animation:move-modal-shake .22s ease-in-out;border-color:#dc2626}@keyframes move-modal-shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.folder-dropdown{margin-top:8px;max-height:260px;overflow-y:auto;background:#fff;border:1px solid #dbe7f5;border-radius:8px;box-shadow:0 12px 28px #0f172a1f}.folder-tree-list{padding:6px}.folder-tree-item{-webkit-user-select:none;user-select:none}.folder-tree-row{display:flex;align-items:center;gap:8px;min-height:36px;padding:6px 8px;border-radius:7px;cursor:pointer;transition:background .14s ease}.folder-tree-row:hover{background:#eff6ff}.expand-icon,.expand-icon-placeholder{width:18px;height:18px;color:#64748b;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.folder-name{min-width:0;color:#0f172a;font-size:14px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-loading,.folder-tree-empty{padding:12px;color:#64748b;font-size:13px}.rename-modal-input-row{position:relative}.rename-modal-node-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:#2563eb;display:inline-flex;align-items:center;justify-content:center;pointer-events:none}.rename-modal-input{padding-left:38px;font-weight:650}.delete-modal-warning{display:flex;flex-direction:column;gap:12px}.delete-modal-hint{margin:0}.delete-modal-body .cc-dialog-error{display:flex;align-items:center;gap:6px}.drag-move-modal-confirmation{display:flex;flex-direction:column;gap:10px}.drag-move-modal-message{margin:0}.drag-move-modal-arrow{color:#94a3b8;font-size:16px;line-height:1;text-align:center}.nsm-body{display:flex;flex-direction:column;gap:14px}.nsm-section-label{color:#64748b;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.nsm-vis-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.nsm-vis-card{position:relative;min-height:78px;padding:14px 12px;border:1px solid #dbe7f5;border-radius:8px;background:#fff;color:#334155;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:9px;text-align:left;transition:background .14s ease,border-color .14s ease,box-shadow .14s ease,color .14s ease}.nsm-vis-card:hover:not(:disabled){background:#eff6ff;border-color:#bfdbfe}.nsm-vis-card.is-active{background:#eff6ff;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a;color:#1d4ed8}.nsm-vis-card:disabled{opacity:.62;cursor:not-allowed}.nsm-vis-dot{position:absolute;top:8px;right:8px;color:#2563eb}.nsm-vis-icon{display:inline-flex;color:currentColor}.nsm-vis-label{color:#0f172a;font-size:14px;font-weight:750;line-height:1.1}.nsm-vis-card.is-active .nsm-vis-label{color:#1d4ed8}.nsm-error{color:#b91c1c;font-size:13px;line-height:1.4}.nsm-cascade-hint{color:#475569;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:9px 10px;font-size:13px;line-height:1.4}.nsm-share-panel{display:flex;flex-direction:column;gap:12px;padding-top:2px}.nsm-user-list{display:flex;flex-direction:column;gap:6px;max-height:190px;overflow-y:auto}.nsm-user-row{display:flex;align-items:center;gap:10px;min-height:42px;padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.nsm-user-row--owner{background:#f8fafc}.nsm-avatar{width:28px;height:28px;border-radius:999px;background:#e2e8f0;color:#475569;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;font-size:12px;font-weight:800}.nsm-avatar--owner{background:#2563eb;color:#fff}.nsm-user-name{flex:1;min-width:0;color:#0f172a;font-size:14px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nsm-badge{flex:0 0 auto;padding:3px 8px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:11px;font-weight:750}.nsm-badge--owner{background:#dbeafe;color:#1d4ed8}.nsm-remove-btn{width:28px;height:28px;border:1px solid transparent;border-radius:7px;background:transparent;color:#64748b;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:18px;line-height:1}.nsm-remove-btn:hover{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.nsm-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.nsm-search-input-wrap{position:relative}.nsm-search-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:#64748b;pointer-events:none}.nsm-search-input{padding-left:35px}.nsm-search-btn{min-width:92px}.nsm-results{display:grid;gap:6px}.nsm-result-item{min-height:40px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#0f172a;display:flex;align-items:center;gap:10px;padding:7px 10px;cursor:pointer}.nsm-result-item:hover{background:#eff6ff;border-color:#bfdbfe}.nsm-result-name{flex:1;min-width:0;font-size:14px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nsm-result-add{color:#2563eb;font-size:12px;font-weight:800}.nsm-no-results{color:#64748b;font-size:13px;padding:2px 0}@media (max-width: 640px){.nsm-vis-grid{grid-template-columns:1fr}.nsm-vis-card{min-height:72px}.nsm-search-row{grid-template-columns:1fr}.nsm-search-btn{width:100%}}.home-page,.home-page *{font-family:var(--font-family)}.home-page{display:flex;justify-content:center;padding:0 2rem 4rem;background:var(--bg-app)}.home-container{max-width:960px;width:100%}.welcome-section{display:flex;flex-direction:column;align-items:center;padding-top:3rem;margin-bottom:2.5rem;animation:fadeInDown .6s ease-out}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.welcome-brand{display:flex;align-items:center;gap:1.25rem;margin-bottom:.8rem}.welcome-logo{height:80px;width:auto;flex-shrink:0;filter:drop-shadow(0 4px 12px rgba(0,0,0,.12));animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.welcome-title{font-family:var(--font-family);font-size:3.25rem;font-weight:700;color:var(--text-main);margin:0;letter-spacing:-.5px;white-space:nowrap}.welcome-taglines{display:flex;gap:1.5rem;justify-content:center}.tagline-amateurs,.tagline-coaches{margin:0;font-size:.95rem;font-weight:500;text-decoration:none;transition:opacity .2s}.tagline-amateurs{color:#2563eb}.tagline-coaches{color:#0369a1}.tagline-amateurs:hover,.tagline-coaches:hover{opacity:.7;text-decoration:underline}.hp-grid{display:flex;flex-direction:column;gap:1.25rem;animation:fadeInUp .6s ease-out .1s both}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.hp-row{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.hp-section{background:var(--surface);border-radius:18px;padding:1.5rem 1.75rem 1.75rem;box-shadow:var(--shadow-1);border:1px solid var(--border)}.hp-section-label{font-size:.7rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:1.2px;margin:0 0 1.1rem}.hp-cards{display:flex;gap:1rem;flex-wrap:wrap}.hp-card-link{flex:1;min-width:100px;text-decoration:none;display:block}.hp-card{position:relative;flex:1;min-width:100px;background:#f8fbff;border:1.5px solid #dbe7fb;border-radius:14px;padding:1.25rem 1rem 1rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.6rem;cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .18s}.hp-card:hover:not(.hp-card--disabled){border-color:var(--primary);box-shadow:0 4px 18px #2563eb21;transform:translateY(-2px)}.hp-card-icon{color:var(--primary);line-height:0}.hp-card--disabled .hp-card-icon{color:#c4c7d0}.hp-card-label{font-family:var(--font-family);font-size:.82rem;font-weight:700;color:var(--text-main);letter-spacing:.8px}.hp-card--disabled .hp-card-label{color:#b0b4c0}.hp-card--disabled{cursor:default;opacity:.6}.hp-coming-badge{position:absolute;top:.6rem;right:.6rem;font-size:.58rem;font-weight:700;color:#aaa;text-transform:uppercase;letter-spacing:.5px;background:#f0f0f0;border-radius:4px;padding:.15rem .4rem}.hp-tooltip{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);background:#111;color:#fff;font-size:.75rem;font-weight:400;line-height:1.5;padding:.55rem .85rem;border-radius:8px;white-space:nowrap;pointer-events:none;z-index:100;box-shadow:0 4px 16px #00000040;animation:tooltipIn .12s ease-out}.hp-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#111}@keyframes tooltipIn{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media (max-width: 680px){.hp-row{grid-template-columns:1fr}.welcome-title{font-size:2rem;white-space:normal}.welcome-logo{height:60px}.welcome-section{padding-top:2rem}.welcome-taglines{flex-direction:column;align-items:center;gap:.4rem}.home-page{padding:0 1rem 3rem}}.terminal-window{display:flex;flex-direction:column;border-radius:4px;overflow:hidden;box-shadow:0 8px 32px #0006,0 2px 8px #0000004d;-webkit-user-select:none;user-select:none}.terminal-window.dos-style{border:2px solid #808080;background:silver}.terminal-window.unix-style{border:1px solid #3a3a3a;background:#2d2d2d}.terminal-window-titlebar{display:flex;align-items:center;justify-content:space-between;padding:2px 4px;cursor:move}.dos-style .terminal-window-titlebar{background:linear-gradient(to right,navy,#1084d0);color:#fff;font-family:"MS Sans Serif",Segoe UI,sans-serif;font-size:12px;font-weight:700;padding:2px 4px}.unix-style .terminal-window-titlebar{background:#3a3a3a;color:#e0e0e0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px;padding:6px 12px}.terminal-window-title{flex:1}.terminal-window-controls{display:flex;gap:4px}.terminal-window-btn{border:none;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center}.dos-style .terminal-window-btn{width:16px;height:14px;background:silver;border:1px outset #c0c0c0;font-family:Marlett,sans-serif;font-size:10px;padding:0}.dos-style .terminal-window-btn:active{border-style:inset}.unix-style .terminal-window-btn{width:12px;height:12px;border-radius:50%;font-size:0;padding:0}.unix-style .terminal-window-btn.close{background:#ff5f57}.unix-style .terminal-window-btn.minimize{background:#ffbd2e}.unix-style .terminal-window-btn.maximize{background:#28ca41}.unix-style .terminal-window-btn:hover:after{font-size:10px;color:#0009}.unix-style .terminal-window-btn.close:hover:after{content:"×"}.unix-style .terminal-window-btn.minimize:hover:after{content:"−"}.unix-style .terminal-window-btn.maximize:hover:after{content:"+"}.terminal-window-toolbar{display:flex;align-items:center;gap:16px;padding:6px 8px;background:#e0e0e0;border-bottom:1px solid #888;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:12px}.system-picker{display:flex;align-items:center;gap:6px}.system-picker-label{color:#333}.system-picker-select{padding:2px 6px;border:1px solid #888;border-radius:3px;background:#fff;font-size:12px}.terminal-effects-toggle{display:flex;gap:12px}.terminal-effects-toggle label{display:flex;align-items:center;gap:4px;color:#333;cursor:pointer}.terminal-effects-toggle input[type=checkbox]{cursor:pointer}.terminal-window-content{flex:1;min-height:0;overflow:hidden}.terminal{width:100%;height:100%;padding:8px 12px;box-sizing:border-box;position:relative;overflow:hidden;font-size:16px;line-height:1.3}.terminal-scroll{height:100%;overflow-y:auto;overflow-x:hidden;position:relative;z-index:1}.terminal-scroll::-webkit-scrollbar{width:12px}.terminal-scroll::-webkit-scrollbar-track{background:#0000004d}.terminal-scroll::-webkit-scrollbar-thumb{background:#fff3;border-radius:6px}.terminal-scroll::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.terminal-line{white-space:pre-wrap;word-break:break-all;min-height:1.3em}.terminal-prompt{-webkit-user-select:none;user-select:none}.terminal-input-line{display:flex;align-items:center;white-space:pre}.terminal-input-text{white-space:pre}.terminal-cursor{display:inline-block;width:.6em;height:1.1em;opacity:0;vertical-align:text-bottom;animation:none}.terminal-cursor.visible{opacity:1}.terminal-hidden-input{position:absolute;left:-9999px;opacity:0;width:1px;height:1px}.terminal-scanlines{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.15) 0px,rgba(0,0,0,.15) 1px,transparent 1px,transparent 2px);z-index:10}.terminal-crt-glow{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;box-shadow:inset 0 0 60px #00ff001a;z-index:9}@keyframes flicker{0%{opacity:.97}50%{opacity:1}to{opacity:.98}}.terminal{animation:flicker .15s infinite}.resize-handle{position:absolute;z-index:100}.resize-handle.n{top:0;left:10px;right:10px;height:4px;cursor:ns-resize}.resize-handle.s{bottom:0;left:10px;right:10px;height:4px;cursor:ns-resize}.resize-handle.e{top:10px;right:0;bottom:10px;width:4px;cursor:ew-resize}.resize-handle.w{top:10px;left:0;bottom:10px;width:4px;cursor:ew-resize}.resize-handle.ne{top:0;right:0;width:10px;height:10px;cursor:nesw-resize}.resize-handle.nw{top:0;left:0;width:10px;height:10px;cursor:nwse-resize}.resize-handle.se{bottom:0;right:0;width:10px;height:10px;cursor:nwse-resize}.resize-handle.sw{bottom:0;left:0;width:10px;height:10px;cursor:nesw-resize}.terminal-window-minimized{position:fixed;bottom:10px;left:10px;padding:6px 12px;background:silver;border:2px outset #c0c0c0;font-family:"MS Sans Serif",Segoe UI,sans-serif;font-size:12px;cursor:pointer;display:flex;align-items:center;gap:6px;z-index:999}.terminal-window-minimized:hover{background:#d0d0d0}.terminal-window-minimized-icon{font-weight:700}.terminal-launcher{position:fixed;bottom:20px;right:20px;z-index:9999;width:48px;height:48px;border-radius:8px;border:none;cursor:pointer;background:#1a1a1a;box-shadow:0 2px 8px #0000004d,inset 0 1px #ffffff1a;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.terminal-launcher:hover,.terminal-launcher.is-hovered{background:#2a2a2a;transform:scale(1.05);box-shadow:0 4px 16px #0006,0 0 20px #00ff0026,inset 0 1px #ffffff1a}.terminal-launcher:active{transform:scale(.95)}.terminal-launcher-icon{font-family:VT323,Courier New,monospace;font-size:22px;color:#0f0;text-shadow:0 0 8px rgba(0,255,0,.6);-webkit-user-select:none;user-select:none}.terminal-launcher:hover .terminal-launcher-icon{text-shadow:0 0 12px rgba(0,255,0,.8)}@keyframes terminal-pulse{0%,to{box-shadow:0 2px 8px #0000004d,inset 0 1px #ffffff1a}50%{box-shadow:0 2px 8px #0000004d,0 0 12px #00ff001a,inset 0 1px #ffffff1a}}.terminal-launcher{animation:terminal-pulse 3s ease-in-out infinite}.terminal-launcher:hover{animation:none}.cat-pet-container{display:inline-block;transition:opacity .2s ease;will-change:transform;contain:layout style paint}.cat-pet-container:hover{opacity:.95}.cat-pet-container.dragging{opacity:.8;transition:none}.cat-sprite{display:block;pointer-events:none;will-change:background-position}.cat-sprite{-ms-interpolation-mode:nearest-neighbor;image-rendering:-moz-crisp-edges;image-rendering:-webkit-optimize-contrast;image-rendering:pixelated;image-rendering:crisp-edges}.deferred-loading{font-family:var(--font-family, "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);color:#0f172a}.deferred-loading--topbar{position:fixed;top:0;left:0;right:0;height:3px;z-index:10000;pointer-events:none}.deferred-loading__track{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#dbe7f561;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.deferred-loading__bar{position:absolute;inset:0 auto 0 0;width:38%;border-radius:999px;background:linear-gradient(90deg,#2563eb00,#2563ebdb,#2563eb00);animation:deferred-loading-slide 1.05s cubic-bezier(.2,.8,.2,1) infinite}.deferred-loading--corner,.deferred-loading--panel,.deferred-loading--inline{display:inline-flex;align-items:center;gap:9px;border:1px solid rgba(203,216,234,.88);background:#ffffffd1;box-shadow:0 14px 38px #0f172a1a;-webkit-backdrop-filter:blur(18px) saturate(170%);backdrop-filter:blur(18px) saturate(170%)}.deferred-loading--corner{box-sizing:border-box;position:fixed;left:max(18px,calc(env(safe-area-inset-left,0px) + 16px));bottom:max(18px,calc(env(safe-area-inset-bottom,0px) + 16px));z-index:10000;height:42px;max-width:min(340px,calc(100vw - 32px));padding:8px 12px 8px 10px;border-radius:999px;pointer-events:none;transform:translateZ(0);animation:deferred-loading-materialize .18s cubic-bezier(.2,.8,.2,1) both}.deferred-loading--panel{max-width:360px;margin:36px auto;padding:14px 16px;border-radius:16px}.deferred-loading--inline{padding:9px 12px;border-radius:999px}.deferred-loading__mark{position:relative;display:inline-grid;place-items:center;width:22px;height:22px;flex:0 0 22px;color:#2563eb}.deferred-loading--inline .deferred-loading__mark{width:18px;height:18px;flex-basis:18px}.deferred-loading__mark svg{width:100%;height:100%;overflow:visible}.deferred-loading__ring,.deferred-loading__arc{fill:none;stroke-linecap:round}.deferred-loading__ring{stroke:#cbd8eae0;stroke-width:3}.deferred-loading__arc{transform-origin:18px 18px;stroke:currentColor}.deferred-loading__arc--primary{stroke-width:3.4;stroke-dasharray:25 82;animation:deferred-loading-orbit 1.08s cubic-bezier(.42,0,.18,1) infinite}.deferred-loading__arc--secondary{stroke-width:2.6;stroke-dasharray:16 60;opacity:.48;animation:deferred-loading-orbit 1.48s cubic-bezier(.42,0,.18,1) infinite reverse}.deferred-loading__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:750;letter-spacing:0;line-height:1.2;color:#334155}.deferred-loading__sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@keyframes deferred-loading-slide{0%{transform:translate(-105%)}to{transform:translate(285%)}}@keyframes deferred-loading-spin{to{transform:rotate(360deg)}}@keyframes deferred-loading-orbit{0%{transform:rotate(0);stroke-dashoffset:0}50%{stroke-dashoffset:-18}to{transform:rotate(360deg);stroke-dashoffset:-58}}@keyframes deferred-loading-materialize{0%{opacity:0;transform:translate3d(0,6px,0) scale(.98)}to{opacity:1;transform:translateZ(0) scale(1)}}@media (prefers-reduced-motion: reduce){.deferred-loading__bar,.deferred-loading__arc,.deferred-loading--corner{animation:none}.deferred-loading__bar{width:100%;opacity:.72}}@media (prefers-reduced-transparency: reduce){.deferred-loading__track,.deferred-loading--corner,.deferred-loading--panel,.deferred-loading--inline{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff}}.loading-toast{position:fixed;bottom:24px;left:24px;padding:12px 18px;border:1px solid rgba(203,216,234,.82);border-radius:14px;box-shadow:0 16px 42px #0f172a1f;z-index:9999;opacity:0;transform:translateY(10px);transition:all .3s ease;pointer-events:none}.loading-toast--loading{background:#ffffffeb;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);animation:fadeInSlideUp .3s ease-out forwards}.loading-toast--connected{background:#f1f8f4f5;opacity:1;transform:translateY(0)}.loading-toast--hidden{opacity:0;transform:translateY(10px)}@keyframes fadeInSlideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.loading-toast__content{display:flex;align-items:center;gap:12px}.loading-toast__logo{width:32px;height:32px;border-radius:50%;object-fit:cover;transition:transform .3s ease}.loading-toast__logo--spinning{animation:spin 1.5s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-toast__text{font-size:14px;font-weight:700;color:#344154;letter-spacing:0}@media (max-width: 768px){.deferred-loading--corner{left:max(12px,calc(env(safe-area-inset-left,0px) + 12px));bottom:max(12px,calc(env(safe-area-inset-bottom,0px) + 12px));height:38px;padding:7px 11px 7px 9px}.deferred-loading--corner .deferred-loading__label{max-width:calc(100vw - 84px);font-size:12px}.loading-toast{bottom:16px;left:16px;padding:10px 14px}.loading-toast__logo{width:28px;height:28px}.loading-toast__text{font-size:13px}}:root{--cc-dialog-blue: #0a66ff;--cc-dialog-blue-strong: #0057d9;--cc-dialog-red: #ff3b30;--cc-dialog-red-strong: #d70015;--cc-dialog-ink: #0f172a;--cc-dialog-muted: #64748b;--cc-dialog-line: rgba(148, 163, 184, .32);--cc-dialog-line-strong: rgba(100, 116, 139, .42);--cc-dialog-surface: rgba(255, 255, 255, .96);--cc-dialog-soft: rgba(248, 250, 252, .86);--cc-dialog-focus: rgba(10, 102, 255, .18);--cc-dialog-shadow: 0 28px 76px rgba(15, 23, 42, .22), 0 2px 8px rgba(15, 23, 42, .08);--cc-dialog-scrim: rgba(15, 23, 42, .32);--cc-dialog-blur: blur(18px) saturate(140%)}.cc-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--cc-dialog-scrim);-webkit-backdrop-filter:var(--cc-dialog-blur);backdrop-filter:var(--cc-dialog-blur);animation:cc-dialog-fade .14s ease-out}@keyframes cc-dialog-fade{0%{opacity:0}to{opacity:1}}.cc-dialog-card{width:min(100%,440px);max-height:calc(100vh - 48px);overflow:hidden;display:flex;flex-direction:column;background:var(--cc-dialog-surface);border:1px solid var(--cc-dialog-line);border-radius:14px;box-shadow:var(--cc-dialog-shadow);color:var(--cc-dialog-ink);font-family:var(--font-family, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif);transform-origin:center;animation:cc-dialog-rise .18s cubic-bezier(.2,.8,.2,1)}.cc-dialog-card--wide{width:min(100%,720px)}.cc-dialog-card--compact{width:min(100%,380px)}@keyframes cc-dialog-rise{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.cc-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 22px 18px;border-bottom:1px solid var(--cc-dialog-line)}.cc-dialog-heading{display:flex;align-items:center;gap:12px;min-width:0}.cc-dialog-icon{width:36px;height:36px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;background:#0a66ff1a;color:var(--cc-dialog-blue);border:1px solid rgba(10,102,255,.22)}.cc-dialog-icon--neutral{background:var(--cc-dialog-soft);color:#475569;border-color:var(--cc-dialog-line)}.cc-dialog-icon--danger{background:#ff3b301a;color:var(--cc-dialog-red);border-color:#ff3b303d}.cc-dialog-title-block{min-width:0}.cc-dialog-kicker{margin:0 0 3px;color:var(--cc-dialog-muted);font-size:11px;line-height:1;font-weight:800;letter-spacing:0;text-transform:uppercase}.cc-dialog-title{margin:0;color:var(--cc-dialog-ink);font-size:19px;line-height:1.25;font-weight:800;letter-spacing:0}.cc-dialog-subtitle{margin:3px 0 0;max-width:100%;color:var(--cc-dialog-muted);font-size:13px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cc-dialog-close{width:32px;height:32px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--cc-dialog-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto;transition:transform .1s ease-out,background .14s ease,border-color .14s ease,color .14s ease}.cc-dialog-close:hover{background:var(--cc-dialog-soft);border-color:var(--cc-dialog-line);color:var(--cc-dialog-ink)}.cc-dialog-close:active{transform:scale(.96)}.cc-dialog-close:focus-visible{outline:none;border-color:var(--cc-dialog-blue);box-shadow:0 0 0 3px var(--cc-dialog-focus)}.cc-dialog-body{padding:22px;overflow-y:auto}.cc-dialog-body--stack{display:flex;flex-direction:column;gap:14px}.cc-dialog-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 22px 22px;border-top:1px solid var(--cc-dialog-line)}.cc-dialog-label{display:block;margin-bottom:7px;color:#334155;font-size:13px;line-height:1.2;font-weight:700}.cc-dialog-input,.cc-dialog-textarea,.cc-dialog-select{width:100%;box-sizing:border-box;border:1px solid var(--cc-dialog-line-strong);border-radius:10px;background:#fff;color:var(--cc-dialog-ink);font-family:var(--font-family, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif);font-size:14px;line-height:1.4;transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}.cc-dialog-input,.cc-dialog-select{min-height:44px;padding:10px 12px}.cc-dialog-textarea{min-height:90px;padding:11px 12px;resize:vertical}.cc-dialog-input:focus,.cc-dialog-textarea:focus,.cc-dialog-select:focus{outline:none;border-color:var(--cc-dialog-blue);box-shadow:0 0 0 3px var(--cc-dialog-focus)}.cc-dialog-input:disabled,.cc-dialog-textarea:disabled,.cc-dialog-select:disabled{background:var(--cc-dialog-soft);color:#94a3b8;cursor:not-allowed}.cc-dialog-error{margin-top:8px;padding:9px 10px;border:1px solid rgba(255,59,48,.24);border-radius:10px;background:#ff3b3014;color:var(--cc-dialog-red-strong);font-size:13px;line-height:1.4}.cc-dialog-note{color:var(--cc-dialog-muted);font-size:13px;line-height:1.45}.cc-dialog-object{display:flex;align-items:center;gap:10px;padding:11px 12px;background:var(--cc-dialog-soft);border:1px solid var(--cc-dialog-line);border-radius:10px;min-width:0}.cc-dialog-object svg{flex:0 0 auto;color:var(--cc-dialog-blue)}.cc-dialog-object-title{min-width:0;color:var(--cc-dialog-ink);font-size:14px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cc-dialog-button{min-height:42px;padding:9px 15px;border:1px solid var(--cc-dialog-line-strong);border-radius:10px;background:#fff;color:#334155;font-family:var(--font-family, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif);font-size:14px;line-height:1;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:transform .1s ease-out,background .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease}.cc-dialog-button:hover:not(:disabled){background:var(--cc-dialog-soft);border-color:var(--cc-dialog-line-strong);color:var(--cc-dialog-ink)}.cc-dialog-button:active:not(:disabled){transform:scale(.98)}.cc-dialog-button:focus-visible{outline:none;border-color:var(--cc-dialog-blue);box-shadow:0 0 0 3px var(--cc-dialog-focus)}.cc-dialog-button:disabled{opacity:.52;cursor:not-allowed}.cc-dialog-button--primary{background:var(--cc-dialog-blue);border-color:var(--cc-dialog-blue);color:#fff}.cc-dialog-button--primary:hover:not(:disabled){background:var(--cc-dialog-blue-strong);border-color:var(--cc-dialog-blue-strong);color:#fff;box-shadow:0 10px 22px #0a66ff2e}.cc-dialog-button--danger{background:var(--cc-dialog-red);border-color:var(--cc-dialog-red);color:#fff}.cc-dialog-button--danger:hover:not(:disabled){background:var(--cc-dialog-red-strong);border-color:var(--cc-dialog-red-strong);color:#fff;box-shadow:0 10px 22px #ff3b3024}.cc-dialog-action-list{display:grid;gap:8px}.cc-dialog-action-btn{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--cc-dialog-line);border-radius:10px;background:#fff;color:var(--cc-dialog-ink);display:flex;align-items:center;gap:10px;font-family:var(--font-family, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif);font-size:14px;font-weight:700;cursor:pointer;text-align:left;transition:transform .1s ease-out,background .14s ease,border-color .14s ease,color .14s ease}.cc-dialog-action-btn:hover{background:#0a66ff14;border-color:#0a66ff3d;color:var(--cc-dialog-blue-strong)}.cc-dialog-action-btn:active{transform:scale(.99)}.cc-dialog-action-btn:focus-visible{outline:none;border-color:var(--cc-dialog-blue);box-shadow:0 0 0 3px var(--cc-dialog-focus)}.cc-dialog-action-btn--danger{color:var(--cc-dialog-red-strong)}.cc-dialog-action-btn--danger:hover{background:#ff3b3014;border-color:#ff3b303d;color:var(--cc-dialog-red-strong)}@media (max-width: 560px){.cc-dialog-overlay{align-items:flex-end;padding:12px}.cc-dialog-card,.cc-dialog-card--wide,.cc-dialog-card--compact{width:100%;max-height:calc(100vh - 24px);border-radius:16px 16px 12px 12px;transform-origin:bottom center}.cc-dialog-footer{flex-direction:column-reverse}.cc-dialog-button{width:100%}}@media (prefers-reduced-motion: reduce){.cc-dialog-overlay,.cc-dialog-card{animation:none}.cc-dialog-close,.cc-dialog-button,.cc-dialog-action-btn{transition:none}}@media (prefers-reduced-transparency: reduce){.cc-dialog-overlay{background:#0f172a75;-webkit-backdrop-filter:none;backdrop-filter:none}.cc-dialog-card{background:#fff}}@media (prefers-contrast: more){.cc-dialog-card,.cc-dialog-input,.cc-dialog-textarea,.cc-dialog-select,.cc-dialog-button,.cc-dialog-action-btn{border-color:#475569}}.sort-toggles{display:flex;gap:4px;align-items:center;height:44px;padding:4px;box-sizing:border-box;border:1px solid #dbe7f5;border-radius:8px;background:#f8fbff}.sort-toggle{display:flex;align-items:center;gap:4px;min-width:38px;min-height:34px;padding:6px 9px;background-color:transparent;border:1px solid transparent;border-radius:7px;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease;color:#64748b}.sort-toggle:hover{background-color:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.sort-toggle[data-state=on]{background-color:#fff;border-color:#bfdbfe;color:#1d4ed8;box-shadow:0 1px 2px #0f172a14}.sort-toggle[data-state=on]:hover{background-color:#fff;border-color:#93c5fd}.sort-toggle-icon{width:16px;height:16px}.sort-direction-icon{width:14px;height:14px}.sort-tooltip-content{background-color:#0f172a;color:#fff;padding:8px 12px;border-radius:6px;font-size:13px;line-height:1.4;box-shadow:0 2px 8px #00000026;z-index:1000;animation:fadeIn .2s ease-out}.sort-tooltip-arrow{fill:#0f172a}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.workspace-route-shell{min-height:calc(100vh - 120px);background:#f4f8fd;position:relative}.workspace-route-state{min-height:calc(100vh - 120px);display:flex;align-items:center;justify-content:center;gap:16px;color:#0f172a;font-family:var(--font-family)}.workspace-route-state h2{margin:0;font-size:22px;line-height:1.1}.workspace-route-state p{margin:6px 0 0;color:#64748b;font-size:14px}.workspace-route-state--error{flex-direction:column;text-align:center;padding:48px 24px}.workspace-route-state--error button{min-height:40px;padding:0 18px;border:1px solid #2563eb;border-radius:8px;background:#2563eb;color:#fff;font:inherit;font-weight:750;cursor:pointer}@media (prefers-reduced-motion: reduce){.workspace-route-shell[data-busy=true] .workspace-route-live-mount{transition:none}}.ug-page{min-height:calc(100vh - 100px);background:var(--bg-app);display:flex;flex-direction:column;animation:ug-page-in .45s ease-out both}@keyframes ug-page-in{0%{opacity:0}to{opacity:1}}.ug-guest-banner{background:#fffbeb;border-bottom:1px solid #fde68a;padding:10px 24px;font-size:13px;color:#92400e;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ug-guest-banner__link{color:#1a73e8;font-weight:600;text-decoration:none}.ug-guest-banner__link:hover{text-decoration:underline}.ug-play-lobby-centered{flex:1;display:flex;align-items:center;justify-content:center;padding:48px 24px 80px}.ug-play-lobby-centered .ug-lobby{width:100%;max-width:440px;background:#fff;border:1px solid #e8e8e4;border-radius:16px;padding:36px;box-shadow:0 4px 24px #0000000f}.ug-lobby{padding:0}.ug-lobby__title{font-size:22px;font-weight:800;color:#1a1a2e;margin:0 0 20px}.ug-lobby__tabs{display:flex;gap:0;border:1.5px solid #e0e0dc;border-radius:10px;overflow:hidden;margin-bottom:24px}.ug-lobby__tab{flex:1;padding:9px 16px;font-size:13px;font-family:inherit;font-weight:600;border:none;background:none;color:#888;cursor:pointer;transition:background .15s,color .15s;position:relative}.ug-lobby__tab+.ug-lobby__tab{border-left:1.5px solid #e0e0dc}.ug-lobby__tab:hover:not(.ug-lobby__tab--active){background:#f8f8f4;color:#444}.ug-lobby__tab--active{background:#f0f1ff;color:#4338ca}.ug-lobby__open-hint{font-size:13px;color:#666;line-height:1.55;margin:0 0 4px}.ug-lobby__form{display:flex;flex-direction:column;gap:20px}.ug-lobby__field{display:flex;flex-direction:column;gap:8px}.ug-lobby__label{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#888}.ug-lobby__input{width:100%;box-sizing:border-box;padding:10px 14px;font-size:15px;font-family:inherit;border:1.5px solid #e0e0dc;border-radius:10px;background:#fff;color:#1a1a2e;outline:none;transition:border-color .15s,box-shadow .15s}.ug-lobby__input:focus{border-color:#818cf8;box-shadow:0 0 0 3px #818cf81f}.ug-lobby__tc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.ug-lobby__tc-btn{padding:8px 6px;font-family:inherit;border:1.5px solid #e0e0dc;border-radius:8px;background:#fff;color:#555;cursor:pointer;transition:border-color .15s,background .15s,color .15s;display:flex;flex-direction:column;align-items:center;gap:2px}.ug-lobby__tc-time{font-size:13px;font-weight:700;color:inherit}.ug-lobby__tc-cat{font-size:10px;font-weight:500;color:#aaa;text-transform:uppercase;letter-spacing:.04em}.ug-lobby__tc-btn:hover{border-color:#818cf8;color:#1a1a2e}.ug-lobby__tc-btn--active{border-color:#818cf8;background:#f0f1ff;color:#4338ca}.ug-lobby__tc-btn--active .ug-lobby__tc-cat{color:#818cf8}.ug-lobby__color-row{display:flex;gap:10px}.ug-lobby__color-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 8px;font-family:inherit;font-weight:500;border:1.5px solid #e0e0dc;border-radius:10px;background:#fff;color:#555;cursor:pointer;transition:border-color .15s,background .15s}.ug-lobby__color-icon{font-size:22px;line-height:1}.ug-lobby__color-btn>span:last-child{font-size:11px;text-transform:capitalize}.ug-lobby__color-btn:hover{border-color:#818cf8}.ug-lobby__color-btn--active{border-color:#818cf8;background:#f0f1ff;color:#4338ca}.ug-lobby__open-spinner-wrap{display:flex;flex-direction:column;align-items:center;gap:14px;padding:24px 0;color:#888;font-size:14px}.ug-lobby__spinner{width:28px;height:28px;border:3px solid #e0e0dc;border-top-color:#4338ca;border-radius:50%;animation:ug-spin .75s linear infinite;flex-shrink:0}.ug-lobby__spinner--sm{width:16px;height:16px;border-width:2px}@keyframes ug-spin{to{transform:rotate(360deg)}}.ug-lobby__open-waiting{display:flex;flex-direction:column;gap:14px}.ug-lobby__open-waiting__label{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#888;margin:0}.ug-lobby__link-row{display:flex;gap:8px;align-items:stretch}.ug-lobby__link-input{flex:1;min-width:0;padding:10px 12px;font-size:13px;font-family:inherit;border:1.5px solid #e0e0dc;border-radius:10px;background:#f8f8f4;color:#444;outline:none;cursor:text;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ug-lobby__link-copy{padding:0 18px;font-size:13px;font-family:inherit;font-weight:600;border:1.5px solid #818cf8;border-radius:10px;background:#fff;color:#4338ca;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s;flex-shrink:0}.ug-lobby__link-copy:hover{background:#f0f1ff}.ug-lobby__link-copy--copied{background:#f0fdf4;border-color:#86efac;color:#16a34a}.ug-lobby__open-status{display:flex;align-items:center;gap:10px;font-size:13px;color:#555}.ug-lobby__open-countdown{font-size:12px;color:#888}.ug-lobby__open-countdown strong{font-variant-numeric:tabular-nums}.ug-lobby__open-countdown--urgent{color:#ea580c}.ug-lobby__cancel{padding:9px;font-size:13px;font-family:inherit;font-weight:600;border:1.5px solid #e0e0dc;border-radius:10px;background:none;color:#888;cursor:pointer;transition:border-color .15s,color .15s}.ug-lobby__cancel:hover{border-color:#aaa;color:#444}.ug-lobby__open-expired{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px 0;text-align:center}.ug-lobby__open-expired__icon{font-size:32px;opacity:.5}.ug-lobby__open-expired p{font-size:14px;color:#666;margin:0}.ug-lobby__error{font-size:13px;color:#dc2626;background:#fef2f2;border-radius:8px;padding:10px 14px;display:flex;flex-direction:column;gap:8px}.ug-lobby__goto-game{background:none;border:none;padding:0;font-size:13px;font-weight:600;color:#2e6bff;cursor:pointer;text-align:left;text-decoration:underline}.ug-lobby__submit{padding:12px;font-size:15px;font-family:inherit;font-weight:700;color:#fff;background:#4338ca;border:none;border-radius:10px;cursor:pointer;transition:background .15s,box-shadow .15s,opacity .15s}.ug-lobby__submit:hover:not(:disabled){background:#3730a3;box-shadow:0 2px 10px #4338ca4d}.ug-lobby__submit:disabled{opacity:.5;cursor:not-allowed}.ug-hist-list{display:flex;flex-direction:column;gap:8px}.ug-hist-card{display:grid;grid-template-columns:4px 1fr auto auto;align-items:center;gap:14px;background:#fff;border-radius:10px;border:1px solid #e8e8e4;padding:12px 16px 12px 0;cursor:pointer;transition:box-shadow .15s,transform .12s;animation:ug-card-in .35s ease-out both}@keyframes ug-card-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ug-hist-card:hover{box-shadow:0 4px 16px #00000014;transform:translateY(-1px)}.ug-hist-card__accent{width:4px;border-radius:4px 0 0 4px;align-self:stretch}.ug-hist-card--win .ug-hist-card__accent{background:#22c55e}.ug-hist-card--loss .ug-hist-card__accent{background:#ef4444}.ug-hist-card--draw .ug-hist-card__accent{background:#94a3b8}.ug-hist-card__players{display:flex;flex-direction:column;gap:3px;min-width:0}.ug-hist-card__player{display:flex;align-items:center;gap:6px;font-size:13px;color:#1a1a2e}.ug-hist-card__piece{font-size:15px}.ug-hist-card__piece--white{filter:drop-shadow(0 1px 1px rgba(0,0,0,.2))}.ug-hist-card__piece--black{filter:drop-shadow(0 1px 1px rgba(0,0,0,.15))}.ug-hist-card__name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ug-hist-card__result{font-size:13px;font-weight:700;min-width:36px;text-align:center}.ug-hist-card--win .ug-hist-card__result{color:#16a34a}.ug-hist-card--loss .ug-hist-card__result{color:#dc2626}.ug-hist-card--draw .ug-hist-card__result{color:#64748b}.ug-hist-card__meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:11px;color:#888;white-space:nowrap}.ug-hist-card__tc{font-weight:600;color:#555}.ug-hist-empty{display:flex;flex-direction:column;align-items:center;padding:60px 0;gap:12px}.ug-hist-empty__icon{font-size:36px;opacity:.3}.ug-hist-empty__text{font-size:14px;color:#888;margin:0}.ug-hist-loading{display:flex;justify-content:center;padding:20px 0}.ug-hist-error{font-size:13px;color:#dc2626;padding:12px;text-align:center}.ug-game-page{display:flex;flex-direction:column;padding:0}.ug-waiting-banner{background:#f0f9ff;border-bottom:1px solid #bae6fd;padding:10px 24px;font-size:13px;color:#0369a1;text-align:center}.ug-page--loading,.ug-page--error{align-items:center;justify-content:center}.ug-connecting{display:flex;flex-direction:column;align-items:center;gap:16px;color:#888;font-size:14px}.ug-error-card{text-align:center;color:#888;font-size:14px;display:flex;flex-direction:column;align-items:center;gap:16px}.ug-error-card__btn{padding:8px 20px;font-size:13px;font-family:inherit;font-weight:600;border:1.5px solid #888;border-radius:8px;background:none;cursor:pointer;color:#555;transition:border-color .15s}.ug-error-card__btn:hover{border-color:#4338ca;color:#4338ca}.ug-game-layout{display:flex;gap:0;flex:1;max-width:1060px;margin:0 auto;width:100%;padding:24px;box-sizing:border-box;align-items:flex-start}.ug-game-board-col{display:flex;flex-direction:column;gap:8px;flex-shrink:0;width:clamp(320px,55vw,580px)}.ug-board-container{position:relative;display:flex;align-items:flex-start}.ug-board-wrapper{position:relative;display:inline-block}.ug-board-flip-btn{position:absolute;bottom:8px;right:8px;padding:4px 10px;font-size:12px;font-family:inherit;font-weight:500;border:1px solid rgba(255,255,255,.3);border-radius:6px;background:#00000059;color:#ffffffd9;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background .15s;z-index:5}.ug-board-flip-btn:hover{background:#0000008c}.ug-game-side-col{flex:1;min-width:0;padding-left:20px;display:flex;flex-direction:column}.ug-game-side-panel{background:#fff;border:1px solid #e8e8e4;border-radius:12px;display:flex;flex-direction:column;height:100%;min-height:400px;overflow:hidden}.ug-game-moves-wrap{flex:1;overflow:hidden;display:flex;flex-direction:column}.ug-player-bar{display:flex;align-items:center;gap:10px;padding:8px 4px;border-radius:8px;transition:background .15s}.ug-player-bar--active{background:#4338ca0d}.ug-player-bar__avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#0f172a;flex-shrink:0}.ug-player-bar__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.ug-player-bar__name{font-size:14px;font-weight:600;color:#1a1a2e;display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ug-player-bar__you-tag{font-size:10px;font-weight:600;letter-spacing:.05em;color:#818cf8;background:#eef2ff;border-radius:4px;padding:1px 5px;text-transform:uppercase}.ug-player-bar__disconnected{font-size:11px;color:#f59e0b}.ug-player-bar__piece-dot{width:12px;height:12px;border-radius:50%;border:1.5px solid #d0d0cc;flex-shrink:0}.ug-player-bar__piece-dot--white{background:#f8f8f4}.ug-player-bar__piece-dot--black{background:#2d2d2d;border-color:#2d2d2d}.ug-clock{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;color:#555;min-width:72px;text-align:right;transition:color .2s;flex-shrink:0}.ug-clock--active{color:#1a1a2e}.ug-clock--low{color:#ea580c}.ug-clock--danger{color:#dc2626;animation:ug-clock-pulse .5s ease-in-out infinite alternate}@keyframes ug-clock-pulse{0%{opacity:1}to{opacity:.65}}.ug-clock--over{color:#94a3b8;animation:none}.ug-draw-banner{display:flex;align-items:center;justify-content:center;gap:16px;padding:10px 24px;background:#f0fdf4;border-bottom:1px solid #bbf7d0;animation:ug-slide-down .2s ease-out}@keyframes ug-slide-down{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.ug-draw-banner__text{font-size:14px;font-weight:500;color:#166534}.ug-draw-banner__text--waiting{color:#64748b;font-style:italic}.ug-draw-banner__actions{display:flex;gap:8px}.ug-draw-banner__btn{padding:6px 16px;font-size:13px;font-family:inherit;font-weight:600;border-radius:7px;cursor:pointer;transition:background .15s}.ug-draw-banner__btn--accept{background:#16a34a;color:#fff;border:none}.ug-draw-banner__btn--accept:hover{background:#15803d}.ug-draw-banner__btn--decline{background:none;color:#dc2626;border:1.5px solid #fca5a5}.ug-draw-banner__btn--decline:hover{background:#fef2f2}.ug-result-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:20;animation:ug-result-in .3s ease-out;border-radius:inherit}@keyframes ug-result-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.ug-result-card{background:#fff;border-radius:16px;padding:32px 40px;text-align:center;display:flex;flex-direction:column;gap:10px;box-shadow:0 20px 60px #00000059;min-width:220px}.ug-result__headline{font-size:34px;font-weight:900;letter-spacing:-.02em;line-height:1}.ug-result__headline--win{color:#16a34a}.ug-result__headline--lose{color:#dc2626}.ug-result__headline--draw{color:#64748b}.ug-result__reason{font-size:14px;color:#888}.ug-result__actions{display:flex;gap:10px;margin-top:10px;justify-content:center}.ug-result__btn{padding:10px 22px;font-size:14px;font-family:inherit;font-weight:700;border-radius:9px;cursor:pointer;transition:background .15s,box-shadow .15s}.ug-result__btn--primary{background:#4338ca;color:#fff;border:none}.ug-result__btn--primary:hover{background:#3730a3;box-shadow:0 2px 10px #4338ca4d}.ug-result__btn--secondary{background:none;color:#555;border:1.5px solid #e0e0dc}.ug-result__btn--secondary:hover{background:var(--bg-app);border-color:#aaa}.ug-movelist{flex:1;overflow-y:auto;padding:12px 8px;font-size:13px;display:flex;flex-direction:column}.ug-movelist--empty{align-items:center;justify-content:center;color:#aaa;font-style:italic;padding:32px}.ug-movelist__table{border-collapse:collapse;width:100%}.ug-movelist__row:hover{background:#f8f8f4}.ug-movelist__num{padding:3px 6px 3px 8px;color:#aaa;font-size:12px;width:28px;-webkit-user-select:none;user-select:none}.ug-movelist__move{padding:3px 8px;border-radius:5px;cursor:pointer;font-weight:500;color:#333;width:48%;transition:background .1s}.ug-movelist__move:hover{background:#eef2ff;color:#4338ca}.ug-movelist__move--active{background:#4338ca!important;color:#fff!important;font-weight:700}.ug-movelist__move--empty{cursor:default}.ug-movelist__back-to-live{margin-top:8px;padding:6px 12px;font-size:12px;font-family:inherit;font-weight:600;color:#4338ca;background:#eef2ff;border:none;border-radius:6px;cursor:pointer;align-self:center;transition:background .15s}.ug-movelist__back-to-live:hover{background:#e0e7ff}.ug-controls{display:flex;gap:8px;padding:12px;border-top:1px solid #f0f0ec}.ug-controls__btn{flex:1;padding:9px 12px;font-size:13px;font-family:inherit;font-weight:600;border-radius:8px;cursor:pointer;transition:background .15s,border-color .15s,opacity .15s}.ug-controls__btn--abort{background:none;color:#64748b;border:1.5px solid #e0e0dc}.ug-controls__btn--abort:hover{background:var(--bg-app);border-color:#aaa}.ug-controls__btn--draw{background:none;color:#555;border:1.5px solid #e0e0dc}.ug-controls__btn--draw:hover:not(:disabled){background:var(--bg-app);border-color:#888}.ug-controls__btn--disabled{opacity:.5;cursor:not-allowed}.ug-controls__btn--resign{background:none;color:#dc2626;border:1.5px solid #fca5a5}.ug-controls__btn--resign:hover{background:#fef2f2}.ug-controls__btn--resign-confirm{background:#dc2626;color:#fff;border:1.5px solid #dc2626;animation:ug-btn-pulse .3s ease-out}@keyframes ug-btn-pulse{0%{transform:scale(.97)}to{transform:scale(1)}}.ug-join-page{align-items:center;justify-content:center;min-height:calc(100vh - 100px)}.ug-join-card{width:100%;max-width:400px;margin:0 auto;background:#fff;border:1px solid #e8e8e4;border-radius:20px;padding:40px 36px;box-shadow:0 4px 32px #00000012;animation:ug-page-in .35s ease-out both}.ug-join-header{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:20px}.ug-join-icon{font-size:40px;line-height:1;margin-bottom:12px;display:block}.ug-join-title{font-size:22px;font-weight:800;color:#1a1a2e;margin:0 0 6px}.ug-join-subtitle{font-size:14px;color:#666;margin:0}.ug-join-tc{display:flex;align-items:baseline;justify-content:center;gap:8px;margin-bottom:20px;padding:14px;background:#f8f8f4;border-radius:12px}.ug-join-tc__time{font-size:26px;font-weight:800;color:#1a1a2e;font-variant-numeric:tabular-nums}.ug-join-tc__cat{font-size:13px;font-weight:500;color:#888;text-transform:uppercase;letter-spacing:.05em}.ug-join-anon-note{font-size:12px;color:#78716c;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:10px 12px;line-height:1.5;margin-bottom:4px}.ug-join-anon-note__link{color:#1a73e8;font-weight:600;text-decoration:none}.ug-join-anon-note__link:hover{text-decoration:underline}.ug-join-btn{width:100%;margin-top:4px}.ug-join-state{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:8px 0}.ug-join-state--loading{gap:14px;color:#888;font-size:14px;padding:20px 0}.ug-join-state__icon{font-size:36px;line-height:1;opacity:.6}.ug-join-state h3{font-size:18px;font-weight:700;color:#1a1a2e;margin:0}.ug-join-state p{font-size:14px;color:#666;margin:0;line-height:1.5}.ug-join-state__msg{font-size:12px;color:#dc2626;background:#fef2f2;border-radius:8px;padding:8px 12px;max-width:100%;word-break:break-word}.ug-join-success{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.ug-join-success__check{width:56px;height:56px;border-radius:50%;background:#f0fdf4;border:2px solid #86efac;display:flex;align-items:center;justify-content:center;font-size:24px;color:#16a34a;font-weight:700;animation:ug-pop-in .4s cubic-bezier(.34,1.56,.64,1) both}@keyframes ug-pop-in{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.ug-join-color-badge{display:flex;align-items:center;gap:10px;background:#f8f8f4;border-radius:10px;padding:10px 18px;font-size:14px;color:#444}.ug-join-color-icon{font-size:28px;line-height:1}.ug-join-color-icon--white{filter:drop-shadow(0 1px 2px rgba(0,0,0,.2))}.ug-join-color-icon--black{filter:drop-shadow(0 1px 1px rgba(0,0,0,.3))}.ug-join-vs{font-size:13px;color:#888;margin:0}.ug-join-redirect{font-size:13px;color:#aaa;margin:0;font-variant-numeric:tabular-nums}@media (max-width: 820px){.ug-play-layout{grid-template-columns:1fr;margin:24px auto}.ug-play-lobby-col{padding-right:0;border-right:none;border-bottom:1px solid #e8e8e4;padding-bottom:32px;margin-bottom:32px}.ug-play-history-col{padding-left:0}.ug-game-layout{flex-direction:column;padding:16px}.ug-game-board-col{width:100%}.ug-game-side-col{padding-left:0;padding-top:12px}}.ug-page{--ug-ink: #202124;--ug-muted: #697177;--ug-border: #dfe3e6;--ug-surface: #ffffff;--ug-accent: #166b5c;min-height:calc(100vh - 76px);background:#f6f7f8;animation:none}.ug-guest-banner{border-bottom-color:#eadca7;background:#fff9e7;color:#6f5615}.ug-guest-banner__link{color:var(--ug-accent)}.ug-play-page{padding:0}.ug-play-lobby-centered{align-items:flex-start;justify-content:center;padding:42px 24px 72px}.ug-play-lobby-centered .ug-lobby{width:min(100%,760px);max-width:none;background:var(--ug-surface);border:1px solid var(--ug-border);border-radius:8px;box-shadow:none;padding:0;overflow:hidden}.ug-lobby__title{margin:0;padding:22px 26px 18px;border-bottom:1px solid var(--ug-border);color:var(--ug-ink);font-size:22px;font-weight:720;letter-spacing:0}.ug-lobby__tabs{width:fit-content;margin:20px 26px 22px;border:1px solid var(--ug-border);border-radius:7px;background:#f8faf9}.ug-lobby__tab{min-width:118px;padding:8px 14px;color:var(--ug-muted);border-radius:0}.ug-lobby__tab+.ug-lobby__tab{border-left:1px solid var(--ug-border)}.ug-lobby__tab:hover:not(.ug-lobby__tab--active){background:#eef3f1;color:var(--ug-ink)}.ug-lobby__tab--active{background:#fff;color:var(--ug-accent);box-shadow:inset 0 -2px 0 var(--ug-accent)}.ug-lobby__form{gap:22px;padding:0 26px 26px}.ug-lobby__label{color:var(--ug-muted);letter-spacing:.04em}.ug-lobby__input,.ug-lobby__link-input{border-color:var(--ug-border);border-radius:7px;color:var(--ug-ink)}.ug-lobby__input:focus,.ug-lobby__link-input:focus{border-color:var(--ug-accent);box-shadow:0 0 0 3px #166b5c1f}.ug-lobby__tc-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.ug-lobby__tc-btn,.ug-lobby__color-btn{border-color:var(--ug-border);border-radius:7px;color:#3f454a;background:#fff}.ug-lobby__tc-btn:hover,.ug-lobby__color-btn:hover{border-color:#9db8b1;color:var(--ug-ink)}.ug-lobby__tc-btn--active,.ug-lobby__color-btn--active{border-color:var(--ug-accent);background:#edf6f3;color:var(--ug-accent)}.ug-lobby__tc-btn--active .ug-lobby__tc-cat{color:#568a7d}.ug-lobby__open-hint{color:#4d555b;margin:0;max-width:540px}.ug-lobby__spinner{border-color:#dfe3e6;border-top-color:var(--ug-accent)}.ug-lobby__open-spinner-wrap,.ug-lobby__open-waiting,.ug-lobby__open-expired{color:var(--ug-muted)}.ug-lobby__link-copy{border-color:var(--ug-accent);border-radius:7px;color:var(--ug-accent)}.ug-lobby__link-copy:hover{background:#edf6f3}.ug-lobby__link-copy--copied{background:#edf6f3;border-color:var(--ug-accent);color:var(--ug-accent)}.ug-lobby__cancel{border-color:var(--ug-border);border-radius:7px;color:var(--ug-muted)}.ug-lobby__cancel:hover{border-color:#9db8b1;color:var(--ug-ink)}.ug-lobby__goto-game{color:var(--ug-accent)}.ug-lobby__submit{width:fit-content;min-width:140px;padding:11px 18px;border-radius:7px;background:var(--ug-accent);font-size:14px;box-shadow:none}.ug-lobby__submit:hover:not(:disabled){background:#0f584b;box-shadow:none}@media (max-width: 700px){.ug-page{min-height:calc(100vh - 64px)}.ug-play-lobby-centered{padding:18px 12px 48px}.ug-lobby__title{padding:18px 16px 14px}.ug-lobby__tabs{width:auto;margin:16px}.ug-lobby__form{padding:0 16px 18px}.ug-lobby__tc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ug-lobby__color-row,.ug-lobby__link-row{flex-direction:column}.ug-lobby__submit{width:100%}}.up-page{min-height:calc(100vh - 100px);background:var(--bg-app);display:flex;flex-direction:column;animation:up-page-in .5s ease-out both}@keyframes up-page-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.up-page--center{align-items:center;justify-content:center}.up-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#eaf2ff,#dbeafe 55%,#eff6ff);padding:64px 24px 56px}.up-hero__chessboard{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);pointer-events:none;opacity:.07}.up-hero__sq{background:transparent}.up-hero__sq--light{background:#fff}.up-hero__inner{position:relative;z-index:1;max-width:640px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}.up-hero__avatar{width:84px;height:84px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:36px;font-weight:800;color:#ffffffe6;border:3px solid rgba(255,255,255,.2);box-shadow:0 8px 32px #0006;letter-spacing:-1px;flex-shrink:0}.up-hero__identity{display:flex;flex-direction:column;align-items:center;gap:8px}.up-hero__username{font-size:clamp(28px,5vw,42px);font-weight:900;color:#0f172a;letter-spacing:-.03em;margin:0;line-height:1.1}.up-hero__edit-btn{margin-top:8px;padding:8px 22px;font-size:13px;font-family:inherit;font-weight:600;color:#ffffffd9;background:#ffffff1a;border:1.5px solid rgba(255,255,255,.2);border-radius:8px;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .15s,border-color .15s}.up-hero__edit-btn:hover{background:#ffffff2e;border-color:#ffffff59}.up-hero--skeleton .up-hero__inner{gap:16px}.up-skeleton{background:#ffffff14;border-radius:8px;animation:up-shimmer 1.4s ease-in-out infinite}@keyframes up-shimmer{0%,to{opacity:.4}50%{opacity:.7}}.up-skeleton--avatar{width:84px;height:84px;border-radius:50%}.up-skeleton--title{width:200px;height:38px}.up-skeleton--line{width:120px;height:18px}.up-body{flex:1;padding:36px 24px 64px}.up-body__inner{max-width:960px;margin:0 auto;display:grid;grid-template-columns:260px 1fr;gap:28px;align-items:start}.up-sidebar{display:flex;flex-direction:column;gap:16px}.up-card{background:#fff;border-radius:12px;border:1px solid #e8e8e4;padding:20px;display:flex;flex-direction:column;gap:12px}.up-card__title{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#aaa;margin:0}.up-card__bio{font-size:14px;color:#444;line-height:1.7;margin:0;white-space:pre-wrap}.up-ext-links{display:flex;flex-direction:column;gap:8px}.up-ext-link{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f8f8f4;border-radius:8px;font-size:13px;font-weight:500;color:#333;text-decoration:none;border:1px solid #ededea;transition:background .12s,border-color .12s}.up-ext-link:hover{background:#eef2ff;border-color:#c7d2fe;color:#4338ca}.up-ext-link__img{width:20px;height:20px;object-fit:contain;flex-shrink:0;border-radius:4px}.up-ratings-table{display:flex;flex-direction:column;gap:6px}.up-ratings-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid #f4f4f0}.up-ratings-row:last-child{border-bottom:none}.up-ratings-row__org{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:#888}.up-ratings-row__val{font-size:18px;font-weight:700;color:#1a1a2e}.up-main{display:flex;flex-direction:column;gap:16px}.up-section-header{display:flex;align-items:center;justify-content:space-between}.up-section-title{font-size:18px;font-weight:700;color:#1a1a2e;margin:0}.up-notfound{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.up-notfound__piece{font-size:48px;opacity:.25;line-height:1}.up-notfound__title{font-size:22px;font-weight:700;color:#1a1a2e;margin:0}.up-notfound__sub{font-size:14px;color:#888;margin:0}.up-notfound__btn{margin-top:8px;padding:9px 24px;font-size:14px;font-family:inherit;font-weight:600;color:#4338ca;background:#eef2ff;border:none;border-radius:8px;cursor:pointer;transition:background .15s}.up-notfound__btn:hover{background:#e0e7ff}.up-edit-page{background:var(--bg-app)}.up-edit-header{background:#fff;border-bottom:1px solid #e8e8e4;padding:0 24px;position:sticky;top:100px;z-index:100}.up-edit-header__inner{max-width:900px;margin:0 auto;padding:16px 0;display:flex;align-items:center;gap:20px}.up-edit-back-btn{padding:7px 14px;font-size:13px;font-family:inherit;font-weight:600;color:#555;background:none;border:1.5px solid #e0e0dc;border-radius:8px;cursor:pointer;flex-shrink:0;transition:border-color .15s,color .15s}.up-edit-back-btn:hover{border-color:#888;color:#1a1a2e}.up-edit-title{font-size:20px;font-weight:800;color:#1a1a2e;margin:0 0 2px}.up-edit-subtitle{font-size:12px;color:#888;margin:0}.up-edit-header__inner>.up-edit-save-btn{margin-left:auto;padding:9px 24px;font-size:14px;font-family:inherit;font-weight:700;color:#fff;background:#4338ca;border:none;border-radius:9px;cursor:pointer;flex-shrink:0;transition:background .15s,box-shadow .15s,opacity .15s}.up-edit-save-btn:hover:not(:disabled){background:#3730a3;box-shadow:0 2px 12px #4338ca4d}.up-edit-save-btn:disabled{opacity:.6;cursor:not-allowed}.up-edit-body{padding:36px 24px 80px}.up-edit-body__inner{max-width:900px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}.up-edit-section{background:#fff;border:1px solid #e8e8e4;border-radius:14px;padding:28px;display:flex;flex-direction:column;gap:22px}.up-edit-section-title{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#aaa;margin:0 0 4px}.up-edit-field{display:flex;flex-direction:column;gap:6px}.up-edit-label{font-size:13px;font-weight:600;color:#444}.up-edit-hint{font-size:11px;color:#aaa;margin-top:-4px}.up-edit-input{width:100%;box-sizing:border-box;padding:9px 12px;font-size:14px;font-family:inherit;border:1.5px solid #e0e0dc;border-radius:9px;background:#fafaf8;color:#1a1a2e;outline:none;transition:border-color .15s,box-shadow .15s,background .15s}.up-edit-input:focus{border-color:#818cf8;background:#fff;box-shadow:0 0 0 3px #818cf81f}.up-edit-input-wrap{display:flex;align-items:center;border:1.5px solid #e0e0dc;border-radius:9px;background:#fafaf8;overflow:hidden;transition:border-color .15s,box-shadow .15s}.up-edit-input-wrap:focus-within{border-color:#818cf8;box-shadow:0 0 0 3px #818cf81f}.up-edit-input-prefix{padding:0 10px;font-size:12px;color:#aaa;background:var(--bg-app);border-right:1.5px solid #e0e0dc;white-space:nowrap;line-height:38px;height:38px;display:flex;align-items:center}.up-edit-input--with-prefix{border:none;border-radius:0;background:transparent;box-shadow:none!important;flex:1;min-width:0}.up-edit-input--with-prefix:focus{box-shadow:none;border-color:transparent}.up-edit-textarea{width:100%;box-sizing:border-box;padding:10px 12px;font-size:14px;font-family:inherit;border:1.5px solid #e0e0dc;border-radius:9px;background:#fafaf8;color:#1a1a2e;outline:none;resize:vertical;line-height:1.6;transition:border-color .15s,box-shadow .15s,background .15s}.up-edit-textarea:focus{border-color:#818cf8;background:#fff;box-shadow:0 0 0 3px #818cf81f}.up-edit-char-count{font-size:11px;color:#aaa;text-align:right;margin-top:-4px}.up-edit-title-grid{display:flex;flex-wrap:wrap;gap:8px}.up-edit-title-btn{padding:6px 14px;font-size:12px;font-family:inherit;font-weight:600;border:1.5px solid #e0e0dc;border-radius:7px;background:#fafaf8;color:#555;cursor:pointer;transition:border-color .12s,background .12s,color .12s}.up-edit-title-btn:hover{border-color:#818cf8;color:#4338ca}.up-edit-title-btn--active{border-color:#4338ca;background:#eef2ff;color:#4338ca;font-weight:700}.up-edit-ratings-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.up-edit-toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%);padding:12px 28px;border-radius:10px;font-size:14px;font-weight:600;pointer-events:none;z-index:9999;animation:up-toast-in .2s ease-out;white-space:nowrap;box-shadow:0 8px 32px #0003}@keyframes up-toast-in{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.up-edit-toast--saving{background:#f0f9ff;color:#0369a1;border:1px solid #bae6fd}.up-edit-toast--success{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}.up-edit-toast--error{background:#fef2f2;color:#dc2626;border:1px solid #fca5a5}@media (max-width: 860px){.up-body__inner{grid-template-columns:1fr}.up-sidebar{flex-direction:row;overflow-x:auto;gap:12px;padding-bottom:4px}.up-card{min-width:220px;flex-shrink:0}.up-edit-body__inner{grid-template-columns:1fr}.up-edit-header__inner{flex-wrap:wrap;gap:12px}.up-edit-save-btn{width:100%;justify-content:center}.up-edit-ratings-grid{grid-template-columns:1fr 1fr}}@media (max-width: 520px){.up-hero{padding:48px 16px 40px}.up-hero__avatar{width:68px;height:68px;font-size:28px}.up-edit-ratings-grid{grid-template-columns:1fr}}.up-page{--up-ink: #202124;--up-muted: #6f767c;--up-border: #dfe3e6;--up-surface: #ffffff;--up-accent: #166b5c;min-height:calc(100vh - 76px);background:#f6f7f8;animation:none}.up-hero{overflow:visible;background:#fff;border-bottom:1px solid var(--up-border);padding:34px 24px 28px}.up-hero__chessboard,.up-hero__sq,.up-hero__sq--light{display:none}.up-hero__inner{max-width:1080px;display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:18px;text-align:left}.up-hero__avatar{width:64px;height:64px;border-radius:8px;border:1px solid rgba(0,0,0,.08);box-shadow:none;font-size:28px;letter-spacing:0}.up-hero__identity{align-items:flex-start;gap:7px;min-width:0}.up-hero__username{color:var(--up-ink);font-size:clamp(28px,4vw,38px);font-weight:760;letter-spacing:0;overflow-wrap:anywhere}.up-hero__edit-btn{grid-column:3;grid-row:1;justify-self:end;margin:0;border:1px solid var(--up-border);background:#fff;color:var(--up-ink);border-radius:7px;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.up-hero__edit-btn:hover{background:#f4f7f6;border-color:#b8c6c2}.up-body{padding:26px 24px 64px}.up-body__inner{max-width:1080px;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:24px}.up-card{border-color:var(--up-border);border-radius:8px;box-shadow:none;padding:18px}.up-card__title,.up-section-title{color:var(--up-ink);letter-spacing:0;text-transform:none}.up-card__title{font-size:13px}.up-card__bio{color:#3f454a}.up-ext-link{background:#fff;border-color:var(--up-border);border-radius:7px;color:var(--up-ink)}.up-ext-link:hover{background:#f4f7f6;border-color:#b8c6c2}.up-ratings-row{border-bottom-color:#edf0f1}.up-section-header{min-height:28px;border-bottom:1px solid var(--up-border);padding-bottom:10px}.up-section-title{font-size:18px;font-weight:720}.up-activity-list{position:relative;display:flex;flex-direction:column;gap:0;background:var(--up-surface);border:1px solid var(--up-border);border-radius:8px;overflow:hidden}.up-activity{display:grid;grid-template-columns:84px 18px minmax(0,1fr);gap:12px;align-items:start;padding:16px 18px;border-bottom:1px solid #edf0f1}.up-activity__date{display:flex;flex-direction:column;gap:2px;color:var(--up-muted);font-size:12px;font-variant-numeric:tabular-nums;line-height:1.25}.up-activity__date small{color:#92999f;font-size:11px}.up-activity__marker{width:8px;height:8px;margin-top:5px;border-radius:50%;background:var(--up-accent);box-shadow:0 0 0 4px #e8f2ef}.up-activity__body{min-width:0}.up-activity__topline{display:flex;align-items:center;gap:8px;min-width:0}.up-activity__type{color:var(--up-accent);font-size:12px;font-weight:700}.up-activity__target{min-width:0;color:var(--up-ink);font-size:13px;font-weight:650;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}a.up-activity__target:hover{color:var(--up-accent)}.up-activity__summary{color:#3f454a;font-size:14px;line-height:1.5;margin:4px 0 0}.up-activity-empty{display:flex;align-items:center;justify-content:center;min-height:220px;background:var(--up-surface);border:1px solid var(--up-border);border-radius:8px}.up-activity-empty p{color:var(--up-muted);font-size:14px;margin:0}.up-activity--loading .up-skeleton{display:block;background:#edf0f1}.up-skeleton--activity-title{width:42%;height:14px;margin-bottom:10px}.up-skeleton--activity-line{width:72%;height:14px}.up-notfound{background:#fff;border:1px solid var(--up-border);border-radius:8px;padding:34px}.up-notfound__btn{border:1px solid var(--up-border);background:#fff;color:var(--up-ink)}.up-notfound__btn:hover{background:#f4f7f6}@media (max-width: 860px){.up-page{min-height:calc(100vh - 64px)}.up-hero{padding:24px 18px}.up-hero__inner{grid-template-columns:20px minmax(0,1fr);gap:12px}.up-hero__edit-btn{grid-column:1 / -1;grid-row:auto;justify-self:start}.up-body{padding:18px 16px 48px}.up-body__inner{grid-template-columns:1fr;gap:18px}.up-sidebar{flex-direction:column;overflow:visible}.up-card{min-width:0}}@media (max-width: 520px){.up-hero{padding:20px 14px}.up-body{padding-inline:12px}.up-activity{grid-template-columns:1fr;gap:8px;padding:14px}.up-activity__marker{display:none}.up-activity__date{flex-direction:row;gap:6px}}.up-hero__presence{width:18px;height:18px;border-radius:999px;border:2px solid #94a3b8;background:#fff;display:inline-flex;align-items:center;justify-content:center;box-shadow:none;flex-shrink:0;align-self:center}.up-hero__presence:after{content:"";width:10px;height:10px;border-radius:999px;background:#16a34a;box-shadow:none}@media (max-width: 768px){.up-hero__presence{width:16px;height:16px}.up-hero__presence:after{width:8px;height:8px}}.up-page{--up-ink: #0f172a;--up-text: #334155;--up-muted: #64748b;--up-border: #dbe7f5;--up-soft: #f4f8fd;--up-panel: #ffffff;--up-blue: #2563eb;--up-blue-strong: #1d4ed8;min-height:calc(100vh - 76px);background:#f4f8fd;color:var(--up-ink);animation:none}.up-hero{background:#fff;border-bottom:1px solid var(--up-border);padding:38px 24px 34px}.up-hero__inner{max-width:1120px;display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:14px;text-align:left}.up-hero__avatar{width:72px;height:72px;border-radius:12px;border:1px solid #bfdbfe;box-shadow:none;font-size:30px;letter-spacing:0}.up-hero__identity{align-items:flex-start;gap:8px;min-width:0}.up-hero__username{color:var(--up-ink);font-size:clamp(30px,4vw,42px);font-weight:780;letter-spacing:0;overflow-wrap:anywhere}.up-hero__title-prefix{color:#ea580c}.up-hero__actions{grid-column:3;grid-row:1;justify-self:end;display:flex;align-items:center;gap:10px}.up-hero__edit-btn,.up-notfound__btn,.up-edit-back-btn,.up-edit-save-btn{min-height:38px;border-radius:8px;font-family:inherit;font-size:14px;font-weight:650;cursor:pointer}.up-hero__edit-btn{margin:0;padding:8px 16px;border:1px solid var(--up-blue);background:var(--up-blue);color:#fff;box-shadow:0 8px 18px #2563eb2e;-webkit-backdrop-filter:none;backdrop-filter:none}.up-hero__edit-btn:hover{background:var(--up-blue-strong);border-color:var(--up-blue-strong)}.up-hero__actions .logout-button-wrapper{width:auto;margin:0;padding:0}.up-hero__actions .logout-button{width:auto;min-height:38px;padding:8px 16px;border:1px solid #dbe7f5;border-radius:8px;background:#fff;color:#475569;font-size:14px;font-weight:650}.up-hero__actions .logout-button:hover{border-color:#fecaca;background:#fef2f2;color:#dc2626}.up-body{padding:28px 24px 70px}.up-body__inner{max-width:1120px;grid-template-columns:minmax(240px,310px) minmax(0,1fr);gap:24px}.up-body__inner--single{max-width:860px;grid-template-columns:1fr}.up-sidebar{gap:14px}.up-card,.up-activity-list,.up-activity-empty,.up-notfound,.up-edit-section{background:var(--up-panel);border:1px solid var(--up-border);border-radius:8px;box-shadow:0 1px 2px #0f172a0a}.up-card{padding:18px;gap:12px}.up-card__title,.up-section-title,.up-edit-section-title{color:var(--up-ink);letter-spacing:0;text-transform:none}.up-card__title{font-size:13px;font-weight:760}.up-card__bio,.up-activity__summary{color:var(--up-text)}.up-ext-link{background:#fff;border-color:var(--up-border);border-radius:8px;color:var(--up-ink)}.up-ext-link:hover{background:#eff6ff;border-color:#bfdbfe;color:var(--up-blue)}.up-ratings-row{border-bottom-color:#e5edf7}.up-ratings-row__org{color:var(--up-muted)}.up-ratings-row__val{color:var(--up-ink)}.up-card--online{gap:14px}.up-online-stat{display:flex;flex-direction:column;gap:2px}.up-online-stat__value{color:var(--up-ink);font-size:28px;font-weight:780;line-height:1}.up-online-stat__label{color:var(--up-muted);font-size:13px;font-weight:620}.up-main{min-width:0;gap:12px}.up-section-header{min-height:30px;border-bottom:1px solid var(--up-border);padding-bottom:10px}.up-section-title{font-size:18px;font-weight:760}.up-activity-list{overflow:hidden}.up-activity{grid-template-columns:88px 18px minmax(0,1fr);gap:12px;padding:16px 18px;border-bottom:1px solid #e5edf7}.up-activity:last-child{border-bottom:none}.up-activity__date{color:var(--up-muted)}.up-activity__date small{color:#94a3b8}.up-activity__marker{background:var(--up-blue);box-shadow:0 0 0 4px #dbeafe}.up-activity__type{color:var(--up-blue)}.up-activity__target{color:var(--up-ink)}a.up-activity__target:hover{color:var(--up-blue)}.up-activity-empty{min-height:220px}.up-activity-empty p{color:var(--up-muted)}.up-notfound{padding:34px}.up-notfound__piece{display:none}.up-notfound__title{color:var(--up-ink)}.up-notfound__btn{border:1px solid var(--up-blue);background:var(--up-blue);color:#fff;padding:8px 18px}.up-notfound__btn:hover{background:var(--up-blue-strong)}.up-edit-page{background:#f4f8fd}.up-edit-header{top:76px;background:#fff;border-bottom:1px solid var(--up-border);padding:0 24px}.up-edit-header__inner{max-width:1120px;padding:20px 0;gap:14px}.up-edit-header__inner>div{min-width:0}.up-edit-back-btn{padding:8px 14px;color:#475569;background:#fff;border:1px solid var(--up-border);flex-shrink:0}.up-edit-back-btn:hover{border-color:#bfdbfe;background:#eff6ff;color:var(--up-blue)}.up-edit-title{color:var(--up-ink);font-size:22px;font-weight:780}.up-edit-subtitle{color:var(--up-muted);font-size:13px}.up-edit-header__inner>.up-edit-save-btn{margin-left:auto;padding:8px 18px;border:1px solid var(--up-blue);background:var(--up-blue);color:#fff;box-shadow:0 8px 18px #2563eb2e}.up-edit-save-btn:hover:not(:disabled){background:var(--up-blue-strong);border-color:var(--up-blue-strong);box-shadow:0 10px 22px #2563eb33}.up-edit-body{padding:30px 24px 80px}.up-edit-body__inner{max-width:1120px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}.up-edit-section{padding:24px;gap:20px}.up-edit-section-title{font-size:16px;font-weight:760;margin:0}.up-edit-label{color:var(--up-ink);font-size:13px;font-weight:700}.up-edit-hint,.up-edit-char-count{color:var(--up-muted)}.up-edit-input,.up-edit-textarea,.up-edit-input-wrap{border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:var(--up-ink)}.up-edit-input:focus,.up-edit-textarea:focus,.up-edit-input-wrap:focus-within{border-color:var(--up-blue);box-shadow:0 0 0 3px #2563eb1f}.up-edit-input-prefix{color:var(--up-muted);background:#f8fbff;border-right:1px solid #cbd5e1}.up-edit-title-btn{border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:var(--up-text)}.up-edit-title-btn:hover{border-color:#bfdbfe;background:#eff6ff;color:var(--up-blue)}.up-edit-title-btn--active{border-color:var(--up-blue);background:#eff6ff;color:var(--up-blue)}@media (max-width: 860px){.up-page{min-height:calc(100vh - 64px)}.up-hero{padding:24px 18px}.up-hero__inner{grid-template-columns:20px minmax(0,1fr);gap:12px}.up-hero__actions{grid-column:1 / -1;grid-row:auto;justify-self:start;flex-wrap:wrap}.up-body{padding:18px 16px 48px}.up-body__inner,.up-edit-body__inner{grid-template-columns:1fr;gap:18px}.up-sidebar{flex-direction:column;overflow:visible}.up-card{min-width:0}.up-edit-header{position:static;padding:0 16px}.up-edit-header__inner{flex-wrap:wrap;gap:12px}.up-edit-header__inner>.up-edit-save-btn{margin-left:0}}@media (max-width: 520px){.up-hero{padding:20px 14px}.up-body,.up-edit-body{padding-inline:12px}.up-hero__actions,.up-edit-header__inner{align-items:stretch}.up-hero__edit-btn,.up-hero__actions .logout-button,.up-edit-back-btn,.up-edit-save-btn{width:100%}.up-activity{grid-template-columns:1fr;gap:8px;padding:14px}.up-activity__marker{display:none}.up-activity__date{flex-direction:row;gap:6px}}.up-hero__inner{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;text-align:left}.up-hero__identity{min-width:0;align-items:flex-start}.up-hero__heading-row{display:inline-flex;align-items:center;min-width:0;max-width:100%;gap:10px}.up-hero__presence{width:16px;height:16px;align-self:center}.up-hero__presence:after{width:8px;height:8px}.up-hero__username{min-width:0;max-width:100%;margin:0;line-height:1.04;white-space:normal;word-break:normal;overflow-wrap:break-word}.up-hero__actions{grid-column:2;grid-row:1;justify-self:end}@media (max-width: 860px){.up-hero__inner{grid-template-columns:1fr;gap:14px}.up-hero__actions{grid-column:1;grid-row:auto;justify-self:start}}html,body,#app{margin:0;padding:0;min-height:100%}html:has(.patch-study-page),body:has(.patch-study-page),html:has(.analysis-page),body:has(.analysis-page){scrollbar-width:none;-ms-overflow-style:none}html:has(.patch-study-page)::-webkit-scrollbar,body:has(.patch-study-page)::-webkit-scrollbar,html:has(.analysis-page)::-webkit-scrollbar,body:has(.analysis-page)::-webkit-scrollbar{width:0;height:0}body{background:var(--bg-app);color:var(--text-main);font-family:var(--font-family)}main{min-height:calc(100vh - 100px)}@keyframes fadeSlideIn{0%{opacity:0;transform:translate(6px)}to{opacity:1;transform:translate(0)}}.patch-study-page{min-height:calc(100vh - 100px);height:auto;padding:16px;box-sizing:border-box;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.patch-study-page::-webkit-scrollbar{width:0;height:0}.patch-study-header-wrap{display:grid;grid-template-rows:1fr;transition:grid-template-rows .24s cubic-bezier(.4,0,.2,1)}.patch-study-header-wrap.is-collapsed{grid-template-rows:0fr}.patch-study-header-wrap>.patch-study-header{overflow:hidden;min-height:0}.patch-study-toggle-bar{display:flex;justify-content:center;align-items:center;height:18px;margin-bottom:10px;position:relative;z-index:1;transition:margin-top .24s cubic-bezier(.4,0,.2,1)}.patch-study-header-wrap:not(.is-collapsed)+.patch-study-toggle-bar{margin-top:-34px}.patch-study-header-wrap:not(.is-collapsed)+.patch-study-toggle-bar .patch-study-toggle-btn{background:transparent;color:#aaa}.patch-study-header-wrap:not(.is-collapsed)+.patch-study-toggle-bar .patch-study-toggle-btn:hover{background:#d8d8d8;color:#333}.patch-study-toggle-btn{display:flex;align-items:center;justify-content:center;width:36px;height:18px;border:none;border-radius:6px;background:#e8e8e8;color:#999;cursor:pointer;transition:background .15s ease,color .15s ease}.patch-study-toggle-btn:hover{background:#d8d8d8;color:#333}.patch-study-header{margin-bottom:16px;padding:2px 12px;border-radius:12px;display:grid;grid-template-columns:1fr auto;grid-template-areas:"title actions" "notice status";align-items:center;background:linear-gradient(135deg,#fff,#f8f9fa);box-shadow:0 2px 8px #00000014,0 1px 4px #0000000a;transition:box-shadow .3s ease}.patch-study-header:hover{box-shadow:0 4px 12px #0000001f,0 2px 6px #0000000f}.patch-study-header h2{margin:2px 0;font-size:40px;grid-area:title;justify-self:start;text-align:left}.patch-study-title{cursor:pointer;transition:background-color .2s;padding:2px 6px;border-radius:4px}.patch-study-title:hover{background-color:#f0f0f0}.patch-study-title-edit{grid-area:title;display:flex;flex-direction:column;gap:4px}.patch-study-title-input{font-size:40px;font-weight:700;border:2px solid #2e6bff;border-radius:4px;padding:2px 6px;outline:none;font-family:inherit;width:100%;box-sizing:border-box}.patch-study-title-error{color:#e74c3c;font-size:14px;margin-left:6px}.patch-study-notice{color:#888;font-size:16px;margin:0;grid-area:notice;justify-self:start;align-self:center}.patch-study-breadcrumb{color:#888;font-size:16px;margin:0;grid-area:notice;justify-self:start;align-self:center;display:flex;align-items:center;gap:6px;flex-wrap:wrap;max-width:min(100%,76vw);min-width:0}.breadcrumb-separator{color:#ccc;-webkit-user-select:none;user-select:none}.breadcrumb-item{padding:2px 6px;border-radius:3px;transition:all .2s}.breadcrumb-item.clickable{background:none;border:none;font:inherit;cursor:pointer;color:#2e6bff}.breadcrumb-item.clickable:hover{background-color:#e3f2ff;color:#1e5bd9}.breadcrumb-item.clickable:focus-visible{outline:2px solid #2e6bff;outline-offset:2px}.breadcrumb-item.current{color:#333;font-weight:500;cursor:pointer}.patch-study-breadcrumb .breadcrumb-item{min-width:0;max-width:clamp(72px,18vw,28ch);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;line-height:1.35}.patch-study-breadcrumb .breadcrumb-separator{flex:0 0 auto}.patch-study-breadcrumb .breadcrumb-item.current{max-width:clamp(96px,24vw,34ch)}.patch-study-breadcrumb.is-compressed{flex-wrap:nowrap;overflow:visible}.study-breadcrumb-overflow{position:relative;display:inline-flex;align-items:center;flex:0 0 auto}.patch-study-breadcrumb .breadcrumb-overflow-btn{min-width:30px;height:24px;padding:0 8px 2px;border:1px solid #dbe7f5;border-radius:999px;background:#f8fbff;color:#64748b;display:inline-flex;align-items:center;justify-content:center;font:inherit;line-height:1;cursor:pointer}.patch-study-breadcrumb .breadcrumb-overflow-btn:hover{color:#1d4ed8;border-color:#bfdbfe;background:#eff6ff}.patch-study-breadcrumb .breadcrumb-overflow-menu{position:absolute;top:calc(100% + 8px);left:0;z-index:120;min-width:210px;max-width:min(320px,72vw);max-height:260px;overflow-y:auto;padding:6px;border:1px solid #dbe7f5;border-radius:8px;background:#fff;box-shadow:0 16px 36px #0f172a29}.patch-study-breadcrumb .breadcrumb-overflow-menu[hidden]{display:none}.patch-study-breadcrumb .breadcrumb-overflow-menu-item{width:100%;min-height:34px;padding:7px 9px;border:0;border-radius:6px;background:transparent;color:#334155;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:inherit;font-size:14px;line-height:1.25;text-align:left;cursor:pointer}.patch-study-breadcrumb .breadcrumb-overflow-menu-item:hover,.patch-study-breadcrumb .breadcrumb-overflow-menu-item:focus{outline:none;background:#eff6ff;color:#1d4ed8}.patch-study-save-status{margin-top:0;color:#666;font-size:16px;grid-area:status;justify-self:end;align-self:center}.patch-study-actions{grid-area:actions;justify-self:end;align-self:center;display:flex;gap:2px;align-items:flex-end}.patch-study-save-button,.patch-study-reload-button{background:#2e6bff;color:#fff;border:none;border-radius:6px;padding:6px 12px;font-size:14px;cursor:pointer}.patch-study-reload-button{background:#fff;color:#2557d6;border:1px solid #bcd0ff}.patch-study-reload-button:hover{background:#eff5ff}.patch-study-save-button:disabled{opacity:.6;cursor:not-allowed}.patch-study-layout{display:flex;height:calc(100vh - 280px);min-height:420px;gap:16px;border-radius:16px;padding:16px;overflow:hidden;box-sizing:border-box;background:linear-gradient(135deg,#fff,#fafbfc);box-shadow:0 4px 16px #00000014,0 2px 8px #0000000a;transition:box-shadow .3s ease}.patch-study-layout:hover{box-shadow:0 6px 20px #0000001f,0 3px 10px #0000000f}.patch-study-layout.is-train-mode{display:grid;grid-template-columns:minmax(0,3fr) minmax(360px,2fr);gap:18px;align-items:stretch}.patch-study-layout.is-train-mode .patch-study-main{min-width:0}.patch-study-layout.is-train-mode .patch-study-rightbar{width:auto!important;min-width:0;padding-left:0}.patch-study-layout.is-train-mode .patch-study-rightbar:before,.patch-study-layout.is-train-mode .patch-study-right-resizer,.patch-study-layout.is-train-mode .patch-study-splitter{display:none}.patch-study-footer-row{display:flex;gap:16px;margin-top:12px}.patch-study-footer-spacer{width:420px;flex-shrink:0}.patch-study-footer-box{flex:1;padding:12px;box-sizing:border-box;background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014,0 1px 4px #0000000a;transition:all .3s ease}.patch-study-footer-box:hover{box-shadow:0 4px 12px #0000001f,0 2px 6px #0000000f}.patch-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:10000}.patch-modal{background:#fff;border-radius:10px;padding:20px 24px;width:360px;box-shadow:0 10px 30px #0003}.patch-modal h3{margin:0 0 8px;font-size:18px;color:#111}.patch-modal p{margin:0 0 12px;color:#444;font-size:14px}.patch-modal-input{width:100%;margin-bottom:12px;padding:8px 10px;border:1px solid #cfcfcf;border-radius:6px;font-size:14px;box-sizing:border-box}.patch-modal-error{margin-bottom:12px;color:#b71c1c;font-size:13px}.patch-modal-actions{display:flex;justify-content:flex-end;gap:10px}.patch-modal-button{padding:6px 12px;border:1px solid #ccc;background:#fff;border-radius:6px;cursor:pointer}.patch-modal-button.primary{background:#2e6bff;border-color:#2e6bff;color:#fff}.patch-modal-button.secondary{background:#f5f5f5;border-color:#ddd;color:#333}.patch-modal-button:disabled{opacity:.6;cursor:not-allowed}.study-comment-box{width:100%;display:flex;flex-direction:column;gap:10px;min-height:0}.study-comment-input{width:100%;flex:0 0 auto;min-height:120px;resize:none;border:1px solid #d8dee7;border-radius:12px;padding:12px 14px;font-size:14px;line-height:1.55;color:#1f2937;background:#fff;box-sizing:border-box;overflow:hidden;transition:border-color .16s ease,box-shadow .16s ease}.study-comment-input::placeholder{color:#9aa4b2}.study-comment-input:focus{outline:none;border-color:#8ab4f8;box-shadow:0 0 0 3px #1a73e824}.study-comment-tabs{align-self:flex-start;display:flex;gap:4px;align-items:center;padding:3px;border:1px solid #d8dee7;border-radius:12px;background:#f3f6fb;box-shadow:inset 0 1px #ffffffbf}.study-comment-tab{min-height:32px;padding:0 12px;border:1px solid transparent;border-radius:9px;background:transparent;color:#4b5563;font-size:13px;font-weight:500;letter-spacing:0;line-height:1;cursor:pointer;transition:background-color .16s ease,color .16s ease,border-color .16s ease,box-shadow .16s ease}.study-comment-tab:hover:not(.is-active){background:#1a73e814;color:#334155}.study-comment-tab.is-active{background:#fff;color:#0f172a;border-color:#c7d2e3;box-shadow:0 1px 2px #0f172a14,0 0 0 1px #c7d2e3a6}.study-comment-tab:focus-visible{outline:none;box-shadow:0 0 0 3px #1a73e838}.study-comment-panel{flex:1;min-height:0}.study-info-panel{display:flex;flex-direction:column;gap:12px;height:auto}.study-fen-wrap{position:relative}.study-fen-box{width:100%;flex:0 0 auto;height:auto;resize:none;border:1px solid #ccc;border-radius:4px;padding:8px 96px 8px 8px;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;box-sizing:border-box;text-align:left;line-height:1.4}.study-fen-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.study-fen-button{padding:6px 12px;background:#fff;border-radius:6px;cursor:pointer;font-size:12px;box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014;transition:box-shadow .2s,transform .2s}.study-fen-button:hover:not(:disabled){box-shadow:0 2px 6px #0000002e,0 2px 4px #0000001f;transform:translateY(-1px)}.study-fen-button.is-inline{position:absolute;right:10px;top:50%;transform:translateY(-50%)}.study-fen-button.is-inline:hover:not(:disabled){transform:translateY(-50%) translateY(-1px)}.study-fen-button:disabled{opacity:.6;cursor:not-allowed}.study-output-card{border:1px solid #d8dee7;border-radius:12px;background:#fff;padding:10px;box-shadow:0 1px 2px #0f172a0a}.study-output-fen-field{position:relative;display:flex;min-width:0}.study-fen-box.study-output-fen-box{display:block;min-height:72px;width:100%;box-sizing:border-box;border:2px solid #dbe6f4;border-radius:10px;background:#f8fafc;color:#0f172a;padding:12px 132px 12px 12px;font-size:14px;line-height:1.45;resize:none;overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.study-fen-box.study-output-fen-box::-webkit-scrollbar{width:0;height:0}.study-fen-actions.study-output-actions{flex-direction:row;align-items:stretch;gap:10px}.study-fen-button.study-output-copy-btn,.study-fen-button.study-output-action-btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid #d2dae6;border-radius:10px;background:#fff;color:#1e293b;box-shadow:none;font-size:13px;font-weight:600;padding:8px 12px;min-height:36px;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}.study-fen-button.study-output-copy-btn{min-width:104px;white-space:nowrap}.study-fen-button.study-output-copy-btn:hover:not(:disabled),.study-fen-button.study-output-action-btn:hover:not(:disabled){background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8;box-shadow:none;transform:none}.study-fen-button.study-output-copy-btn:focus-visible,.study-fen-button.study-output-action-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #2563eb33}.study-fen-button.study-output-action-btn{flex:1;justify-content:center}.study-fen-button.study-output-action-btn.is-secondary{background:#f8fafc;border-color:#d8e2f0;color:#334155}.study-fen-button.study-output-action-btn.is-secondary:hover:not(:disabled){background:#f8fbff;border-color:#9bb8e8;color:#1d4ed8}.study-fen-button.study-output-copy-btn.is-inline{right:12px;top:50%;transform:translateY(-50%)}.study-fen-button.study-output-copy-btn.is-inline:hover:not(:disabled){transform:translateY(-50%)}.study-comment-editor{display:flex;flex-direction:column;gap:10px;min-height:0;height:auto}.study-nag-toolbar{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.study-nag-btn{min-width:0;height:34px;border:1px solid #d8e0ec;border-radius:8px;background:#fff;color:#334155;font-weight:800;font-size:13px;cursor:pointer;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}.study-nag-btn:hover:not(:disabled){border-color:#b8c9e4;background:#f8fbff}.study-nag-btn.is-active{border-color:#2563eb;background:#eff6ff;color:#1d4ed8;box-shadow:inset 0 0 0 1px #2563eb40}.study-nag-btn:disabled{cursor:not-allowed;opacity:.55}.study-settings-panel{display:flex;flex-direction:column;gap:14px;padding:12px;color:#0f172a}.study-settings-section{display:flex;flex-direction:column;gap:8px}.study-settings-label{font-size:12px;font-weight:800;text-transform:uppercase;color:#64748b;letter-spacing:0}.study-settings-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.study-settings-option{min-height:40px;border:1px solid #d8e0ec;border-radius:10px;background:#fff;color:#334155;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 10px;font-size:13px;font-weight:750;cursor:pointer;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}.study-settings-option:hover:not(:disabled){background:#f8fbff;border-color:#b8c9e4}.study-settings-option.is-active{background:#eff6ff;border-color:#2563eb;color:#1d4ed8;box-shadow:inset 0 0 0 1px #2563eb40}.study-settings-option:disabled{opacity:.55;cursor:not-allowed}.study-settings-note{margin:0;font-size:12px;line-height:1.4;color:#64748b}.study-settings-error{border:1px solid #fecaca;border-radius:8px;background:#fef2f2;color:#b91c1c;padding:8px 10px;font-size:12px;font-weight:650}.study-share-panel{display:grid;gap:12px;min-width:0}.study-share-add-card{position:relative;border:1px solid #dbe7f5;border-radius:10px;background:#f8fbff;padding:10px}.study-share-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.study-share-search-field{min-width:0;min-height:38px;display:flex;align-items:center;gap:8px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#64748b;padding:0 10px}.study-share-search-field:focus-within,.study-share-role-select:focus,.study-share-primary-btn:focus-visible,.study-share-result:focus-visible,.study-share-remove-btn:focus-visible{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.study-share-search-field input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:#0f172a;font:inherit;font-size:13px;font-weight:650}.study-share-search-field input::placeholder{color:#94a3b8;font-weight:600}.study-share-spinner{width:12px;height:12px;border:2px solid #bfdbfe;border-top-color:#2563eb;border-radius:999px;animation:pgn-indeterminate .9s linear infinite}.study-follow-btn:focus-visible{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.study-share-presence-eye:focus-visible{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.study-share-role-select{min-height:38px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#0f172a;padding:0 10px;font:inherit;font-size:13px;font-weight:750}.study-share-role-select--inline{width:112px;min-height:34px;justify-self:end}.study-share-primary-btn{min-height:38px;border:1px solid #2563eb;border-radius:8px;background:#2563eb;color:#fff;padding:0 14px;font-size:13px;font-weight:800;cursor:pointer}.study-share-primary-btn:disabled{opacity:.5;cursor:not-allowed}.study-share-results{display:grid;gap:6px;margin-top:8px}.study-share-result{width:100%;min-height:38px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;border:1px solid #dbe7f5;border-radius:8px;background:#fff;color:#0f172a;padding:7px 9px;text-align:left;cursor:pointer}.study-share-result:hover{border-color:#93b4ef;background:#eff6ff}.study-share-result-name,.study-share-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800}.study-share-result-action{color:#2563eb;font-size:12px;font-weight:800;white-space:nowrap}.study-share-list{display:grid;gap:6px;max-height:320px;overflow-y:auto;padding-right:2px}.study-share-group{display:grid;gap:6px;min-width:0}.study-share-group-title{color:#64748b;font-size:11px;font-weight:850;letter-spacing:0;text-transform:uppercase}.study-share-person{min-width:0;min-height:44px;display:grid;grid-template-columns:minmax(0,1fr) auto auto auto auto;align-items:center;gap:8px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;padding:7px 9px}.study-share-person--owner{grid-template-columns:minmax(0,1fr) auto auto auto;background:#f8fbff;border-color:#bfdbfe}.study-share-person--self{grid-template-columns:minmax(0,1fr) auto auto auto}.study-share-person--owner.study-share-person--self{grid-template-columns:minmax(0,1fr) auto auto}.study-share-identity{min-width:0;display:inline-flex;align-items:center;gap:8px}.study-follow-btn{min-height:30px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#334155;padding:0 10px;font-size:12px;font-weight:850;cursor:pointer;white-space:nowrap}.study-share-presence-eye{position:relative;width:30px;height:30px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;cursor:help}.study-share-presence-eye.is-online{border-color:#bbf7d0;background:#f0fdf4;color:#16a34a}.study-share-presence-tooltip{position:absolute;z-index:30;right:50%;bottom:calc(100% + 8px);transform:translate(50%) translateY(3px);pointer-events:none;opacity:0;border:1px solid #dbe7f5;border-radius:7px;background:#0f172a;color:#fff;padding:5px 8px;font-size:11px;font-weight:750;line-height:1;white-space:nowrap;box-shadow:0 10px 22px #0f172a33;transition:opacity .12s ease,transform .12s ease}.study-share-presence-eye:hover .study-share-presence-tooltip,.study-share-presence-eye:focus-visible .study-share-presence-tooltip{opacity:1;transform:translate(50%) translateY(0)}.study-follow-btn:hover{border-color:#93b4ef;background:#eff6ff;color:#1d4ed8}.study-follow-btn.is-active{border-color:#2563eb;background:#2563eb;color:#fff}.study-share-status-ring{width:12px;height:12px;border:2px solid #94a3b8;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#fff;flex-shrink:0}.study-share-status-ring.is-online{border-color:#16a34a}.study-share-status-ring.is-online:after{content:"";width:6px;height:6px;border-radius:999px;background:#16a34a}.study-share-owner-badge{border-radius:999px;background:#dbeafe;color:#1d4ed8;padding:4px 8px;font-size:11px;font-weight:850;white-space:nowrap}.study-share-readonly-role{justify-self:end;border-radius:999px;background:#f1f5f9;color:#475569;padding:4px 9px;font-size:11px;font-weight:850;white-space:nowrap}.study-share-remove-btn{width:34px;height:34px;border:1px solid #fee2e2;border-radius:8px;background:#fff;color:#b91c1c;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.study-share-remove-btn:hover{background:#fef2f2}.study-share-empty,.study-share-no-collaborators{border:1px dashed #cbd5e1;border-radius:10px;background:#fff;color:#64748b;padding:12px;text-align:center;font-size:13px;font-weight:650}.study-share-error{border:1px solid #fecaca;border-radius:8px;background:#fef2f2;color:#b91c1c;padding:8px 10px;font-size:12px;font-weight:700}.move-tree-container--lichess{padding:0!important;background:#fff;color:#2f3948;font-family:var(--font-family, "Inter", "Segoe UI", sans-serif)!important;font-size:13.5px!important}.move-tree-container--lichess .move-tree-content{padding:6px 0 10px;min-width:0;max-width:100%;overflow-x:clip}.lichess-tree-view{max-width:100%;white-space:normal;overflow-x:clip;overflow-wrap:break-word;-webkit-user-select:none;user-select:none;color:#334155;line-height:1.75;min-width:0}.lichess-tree-view--inline{border:1px solid #e2e8f0;border-radius:10px;overflow-x:clip;overflow-y:visible;background:#fff;padding:7px 6px 8px}.lichess-inline-line{display:inline;max-width:100%;min-width:0}.lichess-inline-line.is-mainline{font-weight:760}.lichess-inline-line.is-side-line{font-weight:620;color:#475569}.lichess-inline-move{max-width:100%;min-width:0;margin:1px 2px 1px 0;padding:2px 4px;border:0;border-radius:5px;background:transparent;color:#334155;display:inline-flex;align-items:baseline;gap:2px;cursor:pointer;text-align:left;font:inherit;font-size:13px;line-height:1.35;font-weight:760;vertical-align:baseline;white-space:normal;overflow-wrap:anywhere;word-break:normal}.lichess-inline-move:hover:not(.is-active){background:#eef4ff;color:#1e40af}.lichess-inline-move.is-active{background:#2563eb;color:#fff}.lichess-inline-move.is-trained:not(.is-active){color:#2563eb}.lichess-inline-move.is-variation{font-size:12.8px;font-weight:650}.lichess-inline-index{color:#7b8798;font-weight:700;font-variant-numeric:tabular-nums}.lichess-inline-move.is-active .lichess-inline-index{color:#fff}.lichess-inline-san{color:inherit;min-width:0}.lichess-inline-disclosure{width:12px;height:12px;border-radius:3px;background:#d9e2ef;display:inline-flex;flex:0 0 auto;align-self:center;position:relative;margin-right:1px}.lichess-inline-disclosure:before,.lichess-inline-disclosure:after{content:"";position:absolute;left:3px;right:3px;top:5px;height:2px;border-radius:999px;background:currentColor}.lichess-inline-disclosure:after{transform:rotate(90deg)}.lichess-inline-disclosure.is-expanded:after{opacity:0}.lichess-inline-move.is-active .lichess-inline-disclosure{background:#ffffff3d}.lichess-tree-nags{color:#b45309;font-weight:860;margin-left:.06em;flex:0 0 auto}.lichess-inline-move.is-active .lichess-tree-nags{color:#fff}.lichess-tree-comment-dot{width:5px;height:5px;border-radius:999px;background:currentColor;opacity:.45;flex:0 0 auto;align-self:center}.lichess-tree-interrupt{display:block;max-width:100%;min-width:0;margin:2px 0;padding-left:calc(2px + var(--lichess-indent, 0px));overflow-x:clip;overflow-wrap:break-word}.lichess-tree-comment{display:inline;max-width:100%;margin:0 .2em 0 .1em;color:#64748b;font-size:12.3px;font-weight:560;line-height:1.55;vertical-align:baseline;overflow-wrap:break-word;word-break:normal}.lichess-tree-lines{display:block;max-width:100%;position:relative;margin:2px 0;padding-left:7px;overflow-x:clip;overflow-wrap:break-word}.lichess-tree-line-wrapper{display:block;position:relative;max-width:100%;min-width:0;padding-left:10px;overflow-x:clip}.lichess-tree-branch{position:absolute;left:0;top:.15em;bottom:0;width:8px;border-left:2px solid #d7dee9}.lichess-tree-branch:after{content:"";position:absolute;left:-1px;top:.78em;width:8px;border-top:2px solid #d7dee9}.lichess-tree-line-wrapper:last-child>.lichess-tree-branch{height:.9em}.study-export-toast{display:flex;align-items:flex-start;gap:8px;margin-top:10px;padding:8px 10px;border-radius:6px;font-size:12px;line-height:1.4;border:1px solid transparent}.study-export-toast--success{background:#16a34a1f;border-color:#16a34a4d;color:#15803d}.study-export-toast--warning{background:#d977061a;border-color:#d977064d;color:#b45309}.study-export-toast--error{background:#dc26261a;border-color:#dc26264d;color:#b91c1c}.study-export-toast-msg{flex:1}.study-export-toast-close{flex-shrink:0;background:none;border:none;cursor:pointer;font-size:14px;line-height:1;padding:0 2px;color:inherit;opacity:.6;transition:opacity .15s}.study-export-toast-close:hover{opacity:1}@media (max-width: 820px){.study-fen-actions.study-output-actions{flex-direction:column}}.patch-study-sidebar{width:420px;flex-shrink:0;display:flex;flex-direction:column;gap:12px;padding-right:12px;min-height:0;overflow:hidden;position:relative}.patch-study-sidebar .study-comment-box{min-height:0;flex:1}.patch-study-sidebar .study-comment-panel{min-height:0;overflow:visible}.study-comment-box.is-compact{border:1px solid #d8e0ec;border-radius:12px;background:#fff;overflow:visible}.study-comment-box.is-compact .study-comment-tabs{border-bottom:1px solid #e2e8f0}.study-comment-box.is-compact .study-comment-panel{padding:10px}.study-board-nav-left{min-width:0;display:flex;align-items:center;justify-content:flex-start}.study-board-train-btn{min-height:38px;padding:0 18px;border-radius:12px;border:1px solid #cbd5e1;background:#fff;color:#0f172a;font-size:13px;font-weight:800;cursor:pointer;box-shadow:0 1px 2px #0f172a14;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}.study-board-train-btn:hover{border-color:#93b4ef;background:#eff6ff;color:#1d4ed8;box-shadow:0 2px 6px #2563eb29}.patch-study-sidebar:after{content:"";position:absolute;right:0;top:10px;bottom:10px;width:1px;background:linear-gradient(to bottom,transparent,rgba(0,0,0,.1) 20%,rgba(0,0,0,.1) 80%,transparent)}.patch-study-left-resizer,.patch-study-right-resizer{position:absolute;top:10px;bottom:10px;width:11px;cursor:col-resize;background:transparent;z-index:5}.patch-study-left-resizer{right:-5px}.patch-study-right-resizer{left:-5px}.patch-study-left-resizer:after,.patch-study-right-resizer:after{content:"";position:absolute;top:50%;width:10px;height:28px;border-radius:999px;background:radial-gradient(circle,rgba(100,116,139,.9) 1px,transparent 1.5px) 2px 4px / 4px 6px repeat-y,#ffffffe0;border:1px solid rgba(203,213,225,.9);box-shadow:0 4px 10px #0f172a14;opacity:.42;transform:translate(-50%,-50%);transition:opacity .18s ease,border-color .18s ease}.patch-study-left-resizer:after{left:5px}.patch-study-right-resizer:after{left:6px}.patch-study-left-resizer:hover:after,.patch-study-left-resizer:active:after,.patch-study-right-resizer:hover:after,.patch-study-right-resizer:active:after{opacity:1}.patch-sidebar-content{display:flex;flex-direction:column;gap:12px;min-height:0;flex:1}.patch-analysis-scroll{display:flex;flex-direction:column;gap:12px;min-height:0;flex:1;overflow-y:auto}.patch-sidebar-tabs{display:flex;gap:4px;align-items:center;padding:3px;border:1px solid #d8dee7;border-radius:12px;background:#f3f6fb;box-shadow:inset 0 1px #ffffffbf}.patch-sidebar-tab{border:1px solid transparent;background:transparent;min-height:32px;padding:0 14px;border-radius:9px;color:#4b5563;font-size:13px;font-weight:500;line-height:1;cursor:pointer;transition:background-color .16s ease,color .16s ease,border-color .16s ease,box-shadow .16s ease}.patch-sidebar-tab:hover:not(.is-active){background:#1a73e814;color:#334155}.patch-sidebar-tab.is-active{background:#fff;color:#0f172a;border-color:#c7d2e3;box-shadow:0 1px 2px #0f172a14,0 0 0 1px #c7d2e3a6}.patch-sidebar-tab:focus-visible{outline:none;box-shadow:0 0 0 3px #1a73e838}.patch-analysis-settings{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;align-items:center;border-radius:10px;padding:12px;background:#fff;box-shadow:0 2px 6px #0000000f,0 1px 3px #0000000a;transition:all .3s ease}.patch-analysis-settings:hover{box-shadow:0 4px 10px #0000001a,0 2px 5px #0000000f}.patch-analysis-field{display:flex;flex-direction:column;gap:4px;font-size:12px}.patch-analysis-label{color:#242424;font-size:12px}.patch-analysis-field select{font-size:12px;width:100%}.patch-analysis-field select:disabled{opacity:.6;cursor:not-allowed}.patch-analysis-toggle{display:flex;align-items:center;height:100%}.patch-toggle{display:inline-flex;align-items:center;cursor:pointer}.patch-toggle input{position:absolute;opacity:0;width:0;height:0}.patch-toggle-track{width:36px;height:20px;background:#d1d1d1;border-radius:999px;position:relative;border:1px solid #bfbfbf;transition:background .2s,border-color .2s}.patch-toggle-track:after{content:"";position:absolute;width:16px;height:16px;left:1px;top:1px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .2s}.patch-toggle input:checked+.patch-toggle-track{background:#242424;border-color:#242424}.patch-toggle input:checked+.patch-toggle-track:after{transform:translate(16px)}.patch-toggle input:focus-visible+.patch-toggle-track{outline:2px solid #242424;outline-offset:2px}.patch-analysis-panel{background:linear-gradient(135deg,#f8f9fa,#f1f3f5);border-radius:12px;display:flex;flex-direction:column;min-height:0;flex:0 0 auto;padding:12px;gap:8px;box-shadow:0 2px 8px #0000000f,0 1px 4px #0000000a;transition:all .3s ease}.patch-analysis-panel:hover{box-shadow:0 4px 12px #0000001a,0 2px 6px #0000000f}.patch-imitator-panel{background:#fff;border:1px solid #e2e8f0;box-shadow:none}.patch-imitator-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:end;border:1px solid #e2e8f0;border-radius:8px;padding:10px;background:#fff;box-shadow:none}.patch-imitator-settings:hover{box-shadow:none}.patch-imitator-field{display:flex;flex-direction:column;gap:4px;font-size:12px}.patch-imitator-field select{font-size:12px;width:100%;min-height:32px;border:1px solid rgba(20,25,34,.14);border-radius:8px;background:#fff;color:#111827;padding:0 8px}.patch-imitator-field input{width:100%;min-height:32px;border:1px solid rgba(20,25,34,.14);border-radius:8px;background:#fff;color:#111827;padding:0 8px;box-sizing:border-box;font-size:12px}.patch-imitator-toggle{justify-content:flex-start}.patch-imitator-card{border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:12px;background:#fff;box-shadow:none}.patch-imitator-card:hover{box-shadow:none;transform:none}.patch-imitator-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.patch-imitator-status{flex:0 0 auto;border:1px solid #bfdbfe;border-radius:999px;padding:4px 8px;background:#eff6ff;color:#2563eb;font-size:11px;font-weight:800;line-height:1;text-transform:uppercase;letter-spacing:0}.patch-imitator-title{color:#64748b;font-size:11px;font-weight:800;letter-spacing:0;line-height:1;text-transform:uppercase}.patch-imitator-meta{color:#0f172a;font-size:18px;font-weight:800;line-height:1.2;margin-top:5px}.patch-imitator-moves{display:flex;flex-direction:column;gap:8px;font-size:13px}.patch-imitator-updating{border:1px solid #dbeafe;border-radius:8px;padding:8px 10px;background:#f8fbff;color:#475569;font-size:12px;font-weight:700}.patch-imitator-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;border:1px solid #e2e8f0;border-radius:8px;padding:10px;background:#fff;color:inherit;cursor:pointer;font:inherit;text-align:left;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}.patch-imitator-row:hover:not(:disabled){border-color:#93c5fd;background:#f8fbff;box-shadow:0 8px 20px #0f172a0f;transform:translateY(-1px)}.patch-imitator-row:focus-visible{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb2e}.patch-imitator-row:disabled{cursor:default;opacity:.62}.patch-imitator-rank{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:#eef4ff;color:#2563eb;font-size:13px;font-weight:800}.patch-imitator-move{min-width:0;color:#0f172a;font-size:18px;font-weight:850;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.patch-imitator-prob{text-align:right;color:#475569;font-variant-numeric:tabular-nums;font-weight:800;white-space:nowrap}.patch-imitator-bar{grid-column:2 / 4;display:block;height:6px;border-radius:999px;overflow:hidden;background:#e2e8f0}.patch-imitator-bar>span{display:block;height:100%;max-width:100%;border-radius:inherit;background:linear-gradient(90deg,#2563eb,#60a5fa)}.patch-imitator-tags{display:none;color:#64748b;font-size:11px;font-weight:500}.patch-analysis-status{display:flex;gap:8px;align-items:center;font-size:12px;line-height:16px;color:#242424}.patch-analysis-badge{padding:2px 6px;border-radius:999px;font-size:11px;text-transform:uppercase}.patch-analysis-badge.is-running{background:#ffe9a8}.patch-analysis-badge.is-ready{background:#d1f3dd}.patch-analysis-badge.is-error{background:#ffd1d1}.patch-analysis-badge.is-idle{background:#e6e6e6}.patch-analysis-health{color:#555}.patch-analysis-updated{margin-left:auto;color:#666}.patch-analysis-source{color:#666}.patch-analysis-error{color:#b91c1c;font-size:12px;line-height:16px}.patch-analysis-lines{flex:0 0 auto;min-height:0;overflow:visible;font-family:Menlo,monospace;font-size:12px;line-height:16px;display:flex;flex-direction:column;gap:6px}.patch-context-menu{position:fixed;background:#fff;border:1px solid #d8e2f0;border-radius:12px;box-shadow:0 18px 42px #0f172a29,0 2px 8px #0f172a14;padding:6px;min-width:230px;z-index:2000;animation:contextMenuFadeIn .15s ease-out;color:#0f172a}@keyframes contextMenuFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.patch-context-item{width:100%;text-align:left;border:none;background:transparent;padding:9px 10px;border-radius:8px;color:#1e293b;display:grid;gap:2px;font-size:13px;font-weight:750;cursor:pointer;transition:background-color .16s ease,color .16s ease}.patch-context-item:hover:not(:disabled){background:#eff6ff;color:#1d4ed8}.patch-context-item:disabled{opacity:.5;cursor:not-allowed}.patch-context-item.is-danger{color:#b91c1c}.patch-context-item.is-danger:hover:not(:disabled){background:#fef2f2;color:#991b1b}.patch-context-menu-header{display:grid;gap:2px;padding:7px 10px 9px;border-bottom:1px solid #edf2f7;margin-bottom:4px}.patch-context-menu-header strong{min-width:0;color:#0f172a;font-size:14px;font-weight:850;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.patch-context-menu-kicker{color:#64748b;font-size:10px;font-weight:900;letter-spacing:0;text-transform:uppercase}.patch-context-item-main{display:block}.patch-context-item-note{display:block;color:#64748b;font-size:11px;font-weight:650}.patch-context-readonly{padding:10px;color:#64748b;font-size:12px;font-weight:700}.patch-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--patch-modal-scrim, rgba(15, 23, 42, .32));-webkit-backdrop-filter:var(--patch-modal-blur, blur(18px) saturate(140%));backdrop-filter:var(--patch-modal-blur, blur(18px) saturate(140%));display:flex;align-items:center;justify-content:center;z-index:2100;padding:24px}.patch-confirm-card{background:var(--patch-modal-surface, rgba(255, 255, 255, .96));border:1px solid var(--patch-modal-line, rgba(148, 163, 184, .32));border-radius:14px;padding:18px;width:min(360px,calc(100vw - 48px));box-shadow:var(--patch-modal-shadow, 0 28px 76px rgba(15, 23, 42, .22), 0 2px 8px rgba(15, 23, 42, .08));animation:patch-modal-rise .18s cubic-bezier(.2,.8,.2,1)}.patch-confirm-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#ff3b301a;color:var(--patch-modal-red-strong, #d70015);font-size:18px;font-weight:900;margin-bottom:12px}.patch-confirm-title{color:#0f172a;font-size:18px;font-weight:850;line-height:1.2;margin-bottom:8px}.patch-confirm-body{font-size:13px;line-height:1.5;color:#475569;margin-bottom:18px}.patch-confirm-actions{display:flex;justify-content:flex-end;gap:8px}.patch-confirm-btn{min-height:38px;border:1px solid var(--patch-modal-line-strong, rgba(100, 116, 139, .42));background:#fff;color:#1e293b;border-radius:10px;padding:0 14px;font-size:13px;font-weight:800;cursor:pointer;box-shadow:none;transition:transform .1s ease-out,background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}.patch-confirm-btn:hover{background:var(--patch-modal-soft, rgba(248, 250, 252, .86));border-color:var(--patch-modal-line-strong, rgba(100, 116, 139, .42))}.patch-confirm-btn:active:not(:disabled){transform:scale(.98)}.patch-confirm-btn:focus-visible{outline:none;border-color:var(--patch-modal-blue, #0a66ff);box-shadow:0 0 0 3px var(--patch-modal-focus, rgba(10, 102, 255, .18))}.patch-confirm-btn.is-danger{background:var(--patch-modal-red, #ff3b30);border-color:var(--patch-modal-red, #ff3b30);color:#fff}.patch-confirm-btn.is-danger:hover{background:var(--patch-modal-red-strong, #d70015);border-color:var(--patch-modal-red-strong, #d70015)}.patch-study-access-denied{min-height:calc(100vh - 96px);display:grid;place-items:center;padding:48px 20px;background:#f8fafc}.patch-study-access-denied__panel{width:min(460px,100%);display:grid;gap:14px;justify-items:start;border:1px solid #dbe3ef;border-radius:14px;background:#fff;padding:28px;box-shadow:0 18px 48px #0f172a1a}.patch-study-access-denied__icon{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#eff6ff;color:#2563eb;font-size:22px;font-weight:900}.patch-study-access-denied__panel h2{margin:0;color:#0f172a;font-size:26px;line-height:1.15}.patch-study-access-denied__panel p{margin:0;color:#64748b;font-size:15px;line-height:1.5}.patch-study-access-denied__button{min-height:40px;border:1px solid #2563eb;border-radius:10px;background:#2563eb;color:#fff;padding:0 16px;font-size:14px;font-weight:800;cursor:pointer}.patch-study-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;overflow:hidden}.patch-study-rightbar{width:420px;flex-shrink:0;display:flex;flex-direction:column;padding-left:12px;min-height:0;overflow:hidden;position:relative}.patch-study-rightbar:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:1px;background:linear-gradient(to bottom,transparent,rgba(0,0,0,.1) 20%,rgba(0,0,0,.1) 80%,transparent)}.patch-study-splitter{width:10px;cursor:col-resize;background:transparent;position:relative;flex-shrink:0}.patch-right-panel{background:linear-gradient(135deg,#f8f9fa,#f1f3f5);border-radius:12px;display:flex;flex-direction:column;flex:1;min-height:0;padding:12px;gap:12px;overflow:hidden;box-shadow:0 2px 8px #0000000f,0 1px 4px #0000000a;transition:all .3s ease}.patch-right-panel:hover{box-shadow:0 4px 12px #0000001a,0 2px 6px #0000000f}.tool-panel-dock{flex:1;min-height:0;display:flex;flex-direction:column;gap:10px;border:1px solid #dbe4ef;border-radius:12px;background:#fff;padding:10px;overflow:hidden;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.tool-panel-dock.is-drop-target{border-color:#2563eb;background:#f8fbff;box-shadow:0 0 0 3px #2563eb1f}.tool-panel-dock-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:4px;min-height:38px;padding:3px;border:1px solid #d8dee7;border-radius:12px;background:#f3f6fb;overflow:visible}.tool-panel-dock-tab{width:100%;min-width:0;min-height:30px;border:1px solid transparent;border-radius:9px;background:transparent;color:#475569;display:inline-flex;align-items:center;justify-content:center;padding:0 12px;font-size:12px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:background-color .16s ease,color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}.tool-panel-dock-slot.is-empty{width:100%;min-height:30px;border:1px solid transparent;border-radius:9px}.tool-panel-dock-tab.is-draggable{cursor:grab}.tool-panel-dock-tab.is-draggable:active{cursor:grabbing}.tool-panel-dock-tab:hover:not(.is-active){background:#2563eb14;color:#1e293b}.tool-panel-dock-tab.is-active{background:#fff;color:#0f172a;border-color:#c7d2e3;box-shadow:0 1px 2px #0f172a14,0 0 0 1px #c7d2e39e}.tool-panel-dock-tab.is-drop-target{border-color:#2563eb;background:#eff6ff;color:#1d4ed8;box-shadow:0 0 0 2px #2563eb24;transform:translateY(-1px)}.tool-panel-dock-tab:focus-visible,.tool-floating-action:focus-visible{outline:none;box-shadow:0 0 0 3px #2563eb38}.tool-panel-dock-body{flex:1;min-height:0;overflow:auto;scrollbar-gutter:auto}.patch-study-layout .tool-panel-dock-body,.patch-study-layout .tool-panel-aux-body,.patch-study-layout .tool-floating-body,.patch-study-layout .tool-panel-scroll,.patch-study-layout .study-move-tree-scroll,.patch-study-layout .move-tree-container,.patch-study-layout .move-tree-content,.patch-study-layout .patch-analysis-scroll,.patch-study-layout .study-comment-panel,.patch-study-layout .analysis-sidebar-inner,.patch-study-layout .explorer-body,.patch-study-layout .train-panel-body,.patch-study-layout .draft-tree,.patch-study-layout .patch-chapter-list__scroll,.analysis-layout .tool-panel-dock-body,.analysis-layout .tool-panel-aux-body,.analysis-layout .tool-floating-body,.analysis-layout .tool-panel-scroll,.analysis-layout .study-move-tree-scroll,.analysis-layout .move-tree-container,.analysis-layout .move-tree-content,.analysis-layout .patch-analysis-scroll,.analysis-layout .study-comment-panel,.analysis-layout .analysis-sidebar-inner,.analysis-layout .explorer-body,.analysis-layout .train-panel-body,.analysis-layout .draft-tree,.analysis-layout .patch-chapter-list__scroll{scrollbar-width:none;-ms-overflow-style:none;scrollbar-gutter:auto}.patch-study-layout .tool-panel-dock-body::-webkit-scrollbar,.patch-study-layout .tool-panel-aux-body::-webkit-scrollbar,.patch-study-layout .tool-floating-body::-webkit-scrollbar,.patch-study-layout .tool-panel-scroll::-webkit-scrollbar,.patch-study-layout .study-move-tree-scroll::-webkit-scrollbar,.patch-study-layout .move-tree-container::-webkit-scrollbar,.patch-study-layout .move-tree-content::-webkit-scrollbar,.patch-study-layout .patch-analysis-scroll::-webkit-scrollbar,.patch-study-layout .study-comment-panel::-webkit-scrollbar,.patch-study-layout .analysis-sidebar-inner::-webkit-scrollbar,.patch-study-layout .explorer-body::-webkit-scrollbar,.patch-study-layout .train-panel-body::-webkit-scrollbar,.patch-study-layout .draft-tree::-webkit-scrollbar,.patch-study-layout .patch-chapter-list__scroll::-webkit-scrollbar,.analysis-layout .tool-panel-dock-body::-webkit-scrollbar,.analysis-layout .tool-panel-aux-body::-webkit-scrollbar,.analysis-layout .tool-floating-body::-webkit-scrollbar,.analysis-layout .tool-panel-scroll::-webkit-scrollbar,.analysis-layout .study-move-tree-scroll::-webkit-scrollbar,.analysis-layout .move-tree-container::-webkit-scrollbar,.analysis-layout .move-tree-content::-webkit-scrollbar,.analysis-layout .patch-analysis-scroll::-webkit-scrollbar,.analysis-layout .study-comment-panel::-webkit-scrollbar,.analysis-layout .analysis-sidebar-inner::-webkit-scrollbar,.analysis-layout .explorer-body::-webkit-scrollbar,.analysis-layout .train-panel-body::-webkit-scrollbar,.analysis-layout .draft-tree::-webkit-scrollbar,.analysis-layout .patch-chapter-list__scroll::-webkit-scrollbar{width:0;height:0}.study-move-tree-tool{height:100%;min-height:0;display:flex;flex-direction:column}.study-move-tree-scroll{flex:1;min-height:0;overflow:auto}.tool-panel-dock-empty{min-height:180px;border:1px dashed #cbd5e1;border-radius:10px;display:grid;place-items:center;color:#64748b;font-size:13px;font-weight:650;text-align:center;padding:18px}.tool-panel-aux-slot{display:flex;flex-direction:column;min-height:0;border:1px solid #dbe4ef;border-radius:12px;background:#fff;overflow:hidden;box-shadow:0 1px 2px #0f172a0d}.tool-panel-aux-tab{min-height:38px;width:100%;border:0;border-bottom:1px solid #e5edf7;background:#f8fbff;color:#0f172a;font-size:12px;font-weight:800;letter-spacing:0;cursor:grab;text-align:left;padding:0 12px}.tool-panel-aux-tab:disabled{cursor:default;color:#64748b;background:#f8fafc}.tool-panel-aux-tab:active:not(:disabled){cursor:grabbing}.tool-panel-aux-body{flex:1;min-height:0;overflow:auto}.tool-panel-aux-slot .study-comment-box.is-compact{border:0;border-radius:0;min-height:220px;height:auto}.tool-panel-scroll{height:100%}.tool-floating-panel{position:fixed;z-index:2400;display:flex;flex-direction:column;min-width:280px;min-height:180px;border:1px solid #c7d6ea;border-radius:14px;background:#fff;box-shadow:0 24px 70px #0f172a38,0 2px 8px #0f172a14;overflow:hidden}.tool-floating-titlebar{flex:0 0 auto;min-height:42px;display:flex;align-items:center;gap:8px;padding:0 10px 0 12px;border-bottom:1px solid #e2e8f0;background:#f8fbff;cursor:grab;-webkit-user-select:none;user-select:none}.tool-floating-titlebar:active{cursor:grabbing}.tool-floating-titlebar strong{flex:1;min-width:0;color:#0f172a;font-size:13px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool-floating-action{min-height:28px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#1d4ed8;padding:0 10px;font-size:12px;font-weight:800;cursor:pointer}.tool-floating-action:hover{border-color:#93c5fd;background:#eff6ff}.tool-floating-body{flex:1;min-height:0;overflow:auto;padding:10px}.tool-floating-resize{position:absolute;right:0;bottom:0;width:18px;height:18px;cursor:nwse-resize}.tool-floating-resize:after{content:"";position:absolute;right:5px;bottom:5px;width:8px;height:8px;border-right:2px solid #94a3b8;border-bottom:2px solid #94a3b8}.tool-panel-drag-ghost{position:fixed;z-index:2600;pointer-events:none;padding:8px 10px;border:1px solid #bfdbfe;border-radius:10px;background:#fffffff0;color:#0f172a;font-size:12px;font-weight:800;box-shadow:0 14px 32px #0f172a2e}.study-dock-train-card{height:100%;min-height:160px;display:grid;place-items:center;border:1px dashed #cbd5e1;border-radius:10px;background:#f8fafc;padding:14px}.study-dock-train-primary{min-height:38px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#0f172a;padding:0 14px;font-size:13px;font-weight:800;cursor:pointer;box-shadow:0 1px 2px #0f172a14}.study-dock-train-primary:hover{border-color:#93b4ef;background:#eff6ff;color:#1d4ed8}.study-board-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:4px}.study-board-stage{display:flex;flex-direction:column;align-items:stretch;min-width:0}.study-board-nav{position:relative;display:grid;grid-template-columns:minmax(92px,1fr) auto minmax(92px,1fr);align-items:center;justify-content:stretch;width:100%;min-height:50px;flex-shrink:0;margin-top:8px}.study-board-nav-center{grid-column:2;display:flex;align-items:stretch;justify-self:center;background:#eef2f7;border:1px solid #d8e2f0;border-radius:14px;padding:4px;gap:1px;box-shadow:inset 0 1px 3px #0f172a14}.study-board-nav-button{display:flex;align-items:center;justify-content:center;width:44px;height:40px;border:none;border-radius:10px;background:transparent;color:#1f2937;cursor:pointer;transition:background .12s ease,color .12s ease,transform .1s ease,box-shadow .12s ease}.study-board-nav-button:hover{background:#fff;color:#0f172a;box-shadow:0 1px 4px #0f172a1f}.study-board-nav-button:active{background:#e8e8e8;color:#000;transform:scale(.93);box-shadow:none}.study-board-nav-flip{grid-column:3;justify-self:end;display:flex;align-items:center;justify-content:center;gap:5px;height:38px;padding:0 18px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;color:#334155;font-size:13px;font-weight:800;letter-spacing:0;cursor:pointer;box-shadow:0 1px 2px #0f172a14;transition:background .12s ease,color .12s ease,box-shadow .12s ease}.study-board-nav-flip:hover{background:#fff;color:#0f172a;box-shadow:0 2px 6px #0f172a1f}.study-board-nav-flip:active{background:#d8d8d8;box-shadow:inset 0 2px 4px #00000024}.study-board-placeholder{color:#666;font-size:16px}.move-tree-container{width:100%;background:transparent;border-radius:4px;padding:16px;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.move-tree-placeholder{color:#666;font-size:14px}.move-tree-content{flex:1;min-height:0;overflow:auto}.patch-chapter-list{background:linear-gradient(135deg,#f8f9fa,#f1f3f5);border-radius:12px;display:flex;flex-direction:column;flex:1;min-width:0;max-width:100%;min-height:520px;overflow:hidden;box-shadow:0 2px 8px #0000000f,0 1px 4px #0000000a;transition:all .3s ease}.patch-chapter-list.is-empty{flex:0 0 auto;min-height:132px}.patch-chapter-list:hover{box-shadow:0 4px 12px #0000001a,0 2px 6px #0000000f}.patch-chapter-list__header{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:12px 14px 10px;border-bottom:1px solid rgba(0,0,0,.08);background:linear-gradient(to bottom,rgba(255,255,255,.6),transparent)}.patch-chapter-list__header h3{margin:0;font-size:14px;color:#000}.patch-chapter-list__header p{margin:2px 0 0;font-size:12px;color:#000}.patch-chapter-list__filter{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #f59e0b;border-radius:999px;background:#fff7ed;color:#9a3412;padding:0;font-size:13px;font-weight:850;cursor:pointer;white-space:nowrap;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease;font-variant-numeric:tabular-nums}.patch-chapter-list__filter:hover:not(:disabled),.patch-chapter-list__filter.is-active{border-color:#f59e0b;background:#f59e0b;color:#fff;box-shadow:0 7px 14px #f59e0b2e}.patch-chapter-list__filter:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.patch-study-page{background:#f4f6f8}.patch-study-header,.patch-study-layout,.patch-study-footer-box{border-color:#14192224;background:#ffffffdb;box-shadow:0 14px 36px #10182812}.patch-study-header{border-radius:8px;padding:10px 14px}.patch-study-header h2,.patch-study-title-input{color:#111827;font-size:clamp(26px,4vw,40px);letter-spacing:0}.patch-study-layout{border-radius:8px}.patch-study-sidebar,.patch-study-rightbar{border-color:#14192224}.patch-chapter-list,.patch-right-panel,.patch-analysis-settings,.patch-analysis-panel,.patch-imitator-panel,.patch-imitator-settings{border-color:#1419221f;border-radius:8px;background:#fff}.patch-analysis-scroll{scrollbar-gutter:auto}.patch-analysis-settings{grid-template-columns:minmax(0,1fr) 118px;gap:8px;padding:10px;border:1px solid #e2e8f0;border-radius:10px;box-shadow:none;transition:none}.patch-analysis-settings:hover{box-shadow:none}.patch-analysis-field select{width:100%;min-height:32px;border:1px solid rgba(20,25,34,.14);border-radius:8px;background:#fff;color:#111827;padding:0 8px}.patch-analysis-value{min-height:32px;display:inline-flex;align-items:center;color:#0f172a;font-size:13px;font-weight:750;font-variant-numeric:tabular-nums}.patch-analysis-label{color:#647083;font-size:11px;font-weight:800;letter-spacing:0;text-transform:uppercase}.patch-toggle-track{background:#d9dee7;border-color:transparent}.patch-toggle input:checked+.patch-toggle-track{background:#13745b;border-color:#13745b}.patch-analysis-panel{gap:0;padding:0;overflow:visible;border:1px solid #e2e8f0;box-shadow:none}.patch-analysis-panel .patch-analysis-lines{overflow:hidden}.patch-analysis-panel:hover{box-shadow:none}.patch-analysis-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 14px;border-bottom:1px solid #e2e8f0;background:#fff}.patch-analysis-title{margin:0;color:#111827;font-size:15px;font-weight:700;line-height:1.25;letter-spacing:0}.patch-analysis-heading{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px}.patch-analysis-controls{position:relative;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}.patch-analysis-header-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;margin-left:auto;flex-shrink:0}.patch-analysis-engine-button,.patch-analysis-settings-button{min-width:0;border:1px solid transparent;background:transparent;color:#0f172a;cursor:pointer;font:inherit;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}.patch-analysis-header-toggle{flex-shrink:0;min-height:32px;padding:0 2px}.patch-analysis-engine-button{max-width:190px;min-height:32px;display:inline-flex;align-items:center;gap:6px;padding:0 8px;border-radius:9px;font-size:15px;font-weight:800;line-height:1.1}.patch-analysis-engine-button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.patch-analysis-settings-button{width:32px;height:32px;display:inline-grid;place-items:center;border-radius:9px;color:#64748b}.patch-analysis-engine-button:hover,.patch-analysis-settings-button:hover,.patch-analysis-engine-button[aria-expanded=true],.patch-analysis-settings-button[aria-expanded=true]{border-color:#cbd5e1;background:#f8fafc;color:#1d4ed8}.patch-analysis-engine-button:focus-visible,.patch-analysis-settings-button:focus-visible,.patch-analysis-engine-option:focus-visible{outline:none;box-shadow:0 0 0 3px #2563eb2e}.patch-analysis-engine-menu,.patch-analysis-settings-popover{position:absolute;top:calc(100% + 8px);left:0;z-index:30;border:1px solid #d8e2f0;border-radius:12px;background:#fff;box-shadow:0 18px 42px #0f172a29,0 2px 8px #0f172a14}.patch-analysis-engine-menu{width:190px;padding:6px}.patch-analysis-engine-option{width:100%;min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:10px;border:0;border-radius:8px;background:transparent;color:#334155;padding:0 10px;cursor:pointer;font-size:13px;font-weight:750;text-align:left}.patch-analysis-engine-option:hover,.patch-analysis-engine-option.is-selected{background:#eff6ff;color:#1d4ed8}.patch-analysis-menu-check{color:#2563eb;font-size:10px;line-height:1}.patch-analysis-settings-popover{width:min(236px,calc(100vw - 32px));padding:8px;left:0;right:auto}.patch-analysis-settings-popover .patch-analysis-settings{border:0;padding:0}.patch-analysis-updating{display:inline-flex;align-items:center;min-height:20px;padding:0 7px;border:1px solid #bfdbfe;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:10px;font-weight:800;letter-spacing:0}.patch-analysis-status{flex-wrap:wrap;gap:7px;padding:0 14px;color:#475569}.patch-analysis-badge{display:inline-flex;align-items:center;gap:6px;min-height:24px;padding:0 9px;color:#334155;font-size:10px;font-weight:900;letter-spacing:0}.patch-analysis-badge:before{content:"";width:7px;height:7px;border-radius:999px;background:#94a3b8}.patch-analysis-badge.is-running:before{background:#f59e0b}.patch-analysis-badge.is-ready:before{background:#16a34a}.patch-analysis-badge.is-error:before{background:#dc2626}.patch-analysis-health,.patch-analysis-source,.patch-analysis-updated{min-height:24px;display:inline-flex;align-items:center;padding:0 9px;border:1px solid rgba(20,25,34,.1);border-radius:999px;background:#f8fafc;color:#647083;font-size:11px;font-weight:750}.patch-analysis-updated{margin-left:0}.patch-analysis-error{margin:0 14px;border:1px solid #fecaca;border-radius:8px;background:#fef2f2;padding:9px 10px}.patch-analysis-lines{gap:0;padding:0;font-family:inherit;line-height:1.45}.patch-analysis-line{display:grid;grid-template-columns:68px minmax(0,1fr) 30px;gap:9px;align-items:center;border:0;border-bottom:1px solid #e2e8f0;border-radius:0;background:#fff;padding:11px 12px 11px 10px}.patch-analysis-line:last-child{border-bottom:0}.patch-analysis-line-score{width:68px;min-height:32px;display:inline-grid;place-items:center;border-radius:10px;background:#f8fafc;color:#111827;font-size:16px;font-weight:850;font-variant-numeric:tabular-nums;letter-spacing:0;line-height:1;white-space:nowrap}.patch-analysis-line-body{min-width:0;display:flex;align-items:center;min-height:32px}.patch-analysis-line-toggle{width:30px;height:30px;display:inline-grid;place-items:center;align-self:start;border:0;border-radius:8px;background:transparent;color:#475569;cursor:pointer;padding:0}.patch-analysis-line-toggle:hover{background:#e8eef7;color:#1d4ed8}.patch-analysis-line-toggle:focus-visible{outline:none;box-shadow:0 0 0 3px #2563eb33}.patch-analysis-line-score[data-tone=good]{background:#ecfdf3;color:#15803d}.patch-analysis-line-score[data-tone=equal]{background:#fff7ed;color:#b45309}.patch-analysis-line-score[data-tone=bad]{background:#fef2f2;color:#b91c1c}.patch-analysis-pv{min-width:0;color:#374151;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px;font-weight:650;line-height:1.5}.patch-analysis-pv-move{display:inline-flex;align-items:baseline;gap:4px;max-width:100%;border:0;border-radius:6px;background:transparent;color:inherit;cursor:pointer;font:inherit;letter-spacing:0;margin:0 3px 0 0;padding:1px 3px;text-align:left;vertical-align:baseline}.patch-analysis-pv-move:hover:not(:disabled){background:#eff6ff;color:#1d4ed8}.patch-analysis-pv-move:focus-visible{outline:none;box-shadow:0 0 0 3px #2563eb2e}.patch-analysis-pv-move:disabled{cursor:default}.patch-analysis-pv-prefix{color:#64748b}.patch-analysis-line.is-expanded .patch-analysis-pv{overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere}.patch-analysis-empty{border:0;border-top:1px solid #e2e8f0;border-radius:0;background:#fff;padding:18px 14px;color:#64748b;text-align:center}.study-board-wrapper{max-width:100%;min-width:0;overflow:visible}.study-board-surface{flex:0 0 auto;overflow:hidden;border-radius:8px;box-shadow:0 12px 30px #1018281f}.study-board-nav{gap:10px}.study-board-nav-button{border:1px solid rgba(20,25,34,.14);border-radius:8px;background:#fff;color:#111827;font-weight:750;cursor:pointer}.study-board-nav-button:hover{background:#f1f5f9}@media (max-width: 980px){.patch-study-page{min-height:auto;overflow:visible;padding:10px}.patch-study-header{grid-template-columns:minmax(0,1fr) auto;gap:8px}.patch-study-breadcrumb,.patch-study-save-status{font-size:12px}.patch-study-breadcrumb{max-width:100%}.patch-study-layout{height:auto!important;min-height:0;flex:none;display:grid;grid-template-columns:minmax(0,1fr);gap:12px;overflow:visible}.patch-study-sidebar,.patch-study-main,.patch-study-rightbar{width:100%!important;min-height:0;border:0;padding:0;overflow:visible}.patch-study-left-resizer,.patch-study-right-resizer,.patch-study-splitter{display:none}.patch-chapter-list,.patch-right-panel{min-height:0}.patch-study-sidebar{order:2}.patch-study-main{order:1}.patch-study-rightbar{order:3}.patch-analysis-scroll,.move-tree-content{max-height:none;overflow:visible}.patch-study-footer-row{display:block}.patch-study-footer-spacer{display:none}.patch-study-footer-box{min-height:160px;height:auto}}@media (max-width: 620px){body{overflow-x:hidden}.patch-study-page{padding:8px}.patch-chapter-list__header{grid-template-columns:minmax(0,1fr) auto}.patch-chapter-list__new{grid-column:1 / -1;width:100%}.patch-study-header{grid-template-columns:1fr;grid-template-areas:"title" "notice" "actions" "status"}.patch-study-actions,.patch-study-save-status,.patch-study-breadcrumb{justify-self:stretch}.patch-study-breadcrumb .breadcrumb-item{max-width:clamp(54px,25vw,18ch)}.patch-study-save-button,.patch-study-reload-button{width:100%;min-height:38px}.patch-study-layout{padding:8px}.patch-analysis-settings{grid-template-columns:repeat(2,minmax(0,1fr))}.study-board-nav{grid-template-columns:minmax(68px,1fr) auto minmax(68px,1fr);min-height:48px}.study-board-nav-button{width:38px;min-width:0;height:36px}.study-board-train-btn,.study-board-nav-flip{min-height:36px;height:36px;padding:0 12px}.patch-modal{width:min(360px,calc(100vw - 32px))}.cat-pet-container{display:none}.terminal-launcher{width:42px;height:42px;right:12px!important;bottom:12px!important}}.patch-chapter-list__new{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:0 13px;background:linear-gradient(180deg,#5f87d8,#4b74c9);color:#fff;border:1px solid #446ab8;border-radius:10px;font-size:12px;font-weight:600;letter-spacing:0;cursor:pointer;box-shadow:0 1px 2px #0f172a1f,0 3px 8px #3b60ad3d;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}.patch-chapter-list__new:hover{background:linear-gradient(180deg,#567fcf,#426abf);border-color:#3b5fa8;box-shadow:0 2px 4px #0f172a24,0 5px 12px #3b60ad47;transform:translateY(-1px)}.patch-chapter-list__new:active{background:linear-gradient(180deg,#4f77c5,#3f65b7);border-color:#36589b;transform:translateY(0)}.patch-chapter-list__new:focus-visible{outline:none;box-shadow:0 0 0 3px #5e8adb59,0 2px 6px #3b60ad4d}.patch-chapter-list__scroll{overflow-y:auto;overflow-x:hidden;scrollbar-gutter:auto;max-height:none;flex:1;min-height:0;min-width:0;padding:8px 12px 8px 8px;display:flex;flex-direction:column;gap:8px}.patch-chapter-list__item{width:100%;max-width:100%;min-width:0;box-sizing:border-box;background:#fff;color:#000;border:none;border-radius:10px;padding:10px 12px;display:flex;align-items:center;gap:10px;cursor:pointer;text-align:left;position:relative;box-shadow:0 1px 3px #0000000f,0 1px 2px #00000008;transition:all .2s ease;animation:chapterSlideUp .3s ease-out}@keyframes chapterSlideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.patch-chapter-list__item:hover{background:#f8f9fa;box-shadow:0 3px 8px #0000001a,0 2px 4px #0000000f}.patch-chapter-list__item:focus-visible{outline:none;box-shadow:0 0 0 3px #2e6bff2e,0 3px 8px #0000001a}.patch-chapter-list__item.is-active{background:linear-gradient(135deg,#2e6bff26,#2e6bff14);box-shadow:0 3px 10px #2e6bff33,0 1px 4px #2e6bff1a;border-left:3px solid #2e6bff}.patch-chapter-list__item.is-highlighted{background:#fffbeb;box-shadow:inset 0 0 0 1px #f59e0b52,0 4px 12px #92400e1a}.patch-chapter-list__item.is-active.is-highlighted{background:linear-gradient(135deg,#2e6bff1a,#fffbebeb);border-left-color:#f59e0b}.patch-chapter-list__item.is-dragging{opacity:.6}.patch-chapter-list__item.is-drop-before{margin-top:16px}.patch-chapter-list__item.is-drop-before:before{content:"";position:absolute;top:-12px;left:6px;right:6px;border-top:2px solid #2e6bff}.patch-chapter-list__item.is-drop-after{margin-bottom:16px}.patch-chapter-list__item.is-drop-after:after{content:"";position:absolute;bottom:-12px;left:6px;right:6px;border-bottom:2px solid #2e6bff}.patch-chapter-list__drag{width:24px;height:24px;border-radius:6px;background:#f7f7f7;color:#666;display:inline-flex;align-items:center;justify-content:center;cursor:grab;flex-shrink:0;box-shadow:0 1px 2px #0000000d}.patch-chapter-list__drag:active{cursor:grabbing}.patch-chapter-list__drag svg{width:14px;height:14px;fill:currentColor}.patch-chapter-list__order{width:26px;height:26px;border-radius:6px;background:#f7f7f7;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;font-size:12px;color:#666;flex-shrink:0;cursor:grab;box-shadow:0 1px 2px #0000000d;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}.patch-chapter-list__order:active{cursor:grabbing}.patch-chapter-list__order.is-highlighted{background:#f59e0b;border-color:#d97706;color:#fff;box-shadow:0 7px 16px #d9770642;cursor:pointer}.patch-chapter-list__title{flex:1;min-width:0;max-width:100%;border:0;padding:0;background:transparent;color:inherit;cursor:pointer;text-align:left;font-size:13px;line-height:1.2;font-weight:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.patch-chapter-list__title:focus-visible{outline:none;box-shadow:0 0 0 3px #2e6bff2e;border-radius:6px}.patch-chapter-list__title-edit{flex:1;min-width:0;display:flex;flex-direction:column}.patch-chapter-list__title-input{flex:1;min-width:0;max-width:100%;box-sizing:border-box;border-radius:4px;padding:6px 8px;font-size:13px;line-height:1.2;background:#fff;color:#000;border:2px solid #2e6bff;box-shadow:0 0 0 3px #2e6bff1a;outline:none}.patch-chapter-list__error{display:block;margin-top:4px;font-size:12px;color:#d93025}.patch-chapter-list__delete{margin-left:auto;flex-shrink:0;width:26px;height:26px;border:none;border-radius:50%;background:#f7f7f7;color:#777;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014;transition:all .2s ease}.patch-chapter-list__delete:hover{background:#ffe6ee;color:#d94f84;box-shadow:0 2px 6px #d94f8440,0 2px 4px #0000001a;transform:translateY(-1px)}.patch-chapter-list__delete:disabled{opacity:.6;cursor:not-allowed}.patch-chapter-list__delete svg{width:14px;height:14px;fill:currentColor}.patch-action-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:10000}.patch-action-card{background:#fff;border-radius:10px;padding:16px 18px;width:320px;box-shadow:0 4px 12px #00000026,0 8px 16px #0003}.patch-action-card--reorder{width:min(380px,calc(100vw - 40px));padding:18px;border:1px solid #dbe7f5;box-shadow:0 20px 55px #0f172a38,0 2px 8px #0f172a14}.patch-action-title{font-size:14px;font-weight:700;margin-bottom:10px}.patch-action-card--reorder .patch-action-title{color:#0f172a;font-size:18px;line-height:1.2;margin-bottom:14px}.patch-reorder-summary{display:grid;gap:8px;margin-bottom:18px}.patch-reorder-row{display:grid;grid-template-columns:86px minmax(0,1fr);align-items:center;gap:10px;padding:10px 12px;border:1px solid #dbe7f5;border-radius:8px;background:#f8fbff}.patch-reorder-row span{color:#64748b;font-size:11px;font-weight:800;letter-spacing:0;text-transform:uppercase}.patch-reorder-row strong{min-width:0;overflow:hidden;color:#0f172a;font-size:13px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.patch-action-body{font-size:13px;color:#333;margin-bottom:16px}.patch-action-emphasis{margin-top:4px;font-weight:600}.patch-action-buttons{display:flex;justify-content:flex-end;gap:8px}.patch-action-btn{padding:6px 12px;border:1px solid #cfcfcf;background:#fff;border-radius:6px;cursor:pointer;font-size:12px}.patch-action-btn.is-danger{background:#e53935;border-color:#e53935;color:#fff}.patch-chapter-list__empty{padding:16px;text-align:center;font-size:12px;color:#000}.patch-chapter-list__actions{display:flex;gap:8px}.patch-chapter-list__import-fen{padding:6px 12px;border:1px solid #cfcfcf;background:#fff;border-radius:6px;cursor:pointer;font-size:12px;font-weight:500;color:#666;transition:all .2s}.patch-chapter-list__import-fen:hover{background:#f5f5f5;border-color:#999;color:#333}.patch-action-card--wide{width:480px;max-width:90vw}.patch-fen-import-form{display:flex;flex-direction:column;gap:10px}.patch-fen-import-label{font-size:12px;font-weight:600;color:#333;margin-bottom:-6px}.patch-fen-import-input{padding:8px 10px;border:1px solid #cfcfcf;border-radius:6px;font-size:13px;font-family:inherit}.patch-fen-import-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.patch-fen-import-textarea{padding:8px 10px;border:1px solid #cfcfcf;border-radius:6px;font-size:12px;font-family:Courier New,monospace;resize:vertical;min-height:60px}.patch-fen-import-textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.patch-fen-import-hint{font-size:11px;color:#666;line-height:1.4}.patch-fen-import-error{padding:8px 10px;background:#fee;border:1px solid #fcc;border-radius:6px;font-size:12px;color:#c33}.patch-action-btn--primary{background:#3b82f6;border-color:#3b82f6;color:#fff;font-weight:500}.patch-action-btn--primary:hover:not(:disabled){background:#2563eb;border-color:#2563eb}.patch-action-btn:disabled{opacity:.5;cursor:not-allowed}.patch-modal-label{display:block;font-size:12px;font-weight:600;color:#333;margin-top:12px;margin-bottom:6px}.patch-modal-hint{display:block;font-size:11px;font-weight:400;color:#666;margin-left:8px}.patch-modal-textarea{width:100%;padding:8px 10px;border:1px solid #cfcfcf;border-radius:6px;font-size:12px;font-family:Courier New,monospace;resize:vertical;box-sizing:border-box}.patch-modal-textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.patch-modal-hint-text{font-size:11px;color:#666;margin-top:4px;line-height:1.4}.patch-modal-tabs{display:flex;gap:4px;margin-bottom:14px;border-bottom:1px solid #e5e7eb;padding-bottom:0}.patch-modal-tab{padding:6px 14px;font-size:12px;font-weight:500;color:#555;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;border-radius:4px 4px 0 0;transition:color .15s,border-color .15s}.patch-modal-tab:hover{color:#222}.patch-modal-tab.is-active{color:#3b82f6;border-bottom-color:#3b82f6;font-weight:600}.patch-modal-tab:disabled{opacity:.5;cursor:not-allowed}.patch-modal-textarea--pgn{font-size:11px;height:160px;margin-bottom:8px}.patch-modal-pgn-actions{display:flex;gap:8px;align-items:center;margin-bottom:10px}.patch-modal-pgn-preview{background:#f3f4f6;border-radius:6px;padding:8px 12px;margin-bottom:8px;font-size:12px;color:#374151}.patch-modal-pgn-preview__first{margin-top:2px;font-size:11px;color:#6b7280}.patch-modal-progress{margin-top:10px}.patch-modal-progress__label{font-size:12px;color:#6b7280;margin-bottom:6px}.patch-modal-progress__bar{height:6px;background:#e5e7eb;border-radius:3px;overflow:hidden}.patch-modal-progress__fill{height:100%;background:#3b82f6;border-radius:3px;transition:width .15s ease}.patch-modal-progress__fill.is-indeterminate{width:40%!important;animation:pgn-indeterminate 1.2s ease-in-out infinite}@keyframes pgn-indeterminate{0%{transform:translate(-100%)}to{transform:translate(300%)}}.patch-modal--large-pgn{width:420px}.large-pgn-preview{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:12px 14px;margin-bottom:16px;display:flex;flex-direction:column;gap:8px}.large-pgn-preview__row{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;color:#374151}.large-pgn-preview__row strong{color:#111}.large-pgn-preview__folder{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}.large-pgn-preview__warn{font-size:12px;color:#b45309;background:#d9770614;border-radius:4px;padding:6px 8px;margin-top:4px}.large-pgn-studies-progress{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:4px}.large-pgn-study-dot{width:10px;height:10px;border-radius:50%;background:#e5e7eb;transition:background .2s;flex-shrink:0}.large-pgn-study-dot.done{background:#22c55e}.large-pgn-study-dot.active{background:#3b82f6;box-shadow:0 0 0 2px #3b82f64d;animation:large-pgn-pulse 1s ease-in-out infinite}@keyframes large-pgn-pulse{0%,to{opacity:1}50%{opacity:.55}}.large-pgn-done{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:16px;margin-bottom:16px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}.large-pgn-done__icon{font-size:28px;color:#16a34a;line-height:1}.large-pgn-done__summary{font-size:14px;color:#374151;line-height:1.5}.large-pgn-done__skipped{font-size:12px;color:#b45309}.large-pgn-done__errors{width:100%;font-size:12px;color:#6b7280;text-align:left}.large-pgn-done__errors summary{cursor:pointer;color:#b91c1c;margin-bottom:6px}.large-pgn-done__errors ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:3px;max-height:150px;overflow-y:auto}:root{--patch-modal-blue: #0a66ff;--patch-modal-blue-strong: #0057d9;--patch-modal-red: #ff3b30;--patch-modal-red-strong: #d70015;--patch-modal-ink: #0f172a;--patch-modal-muted: #64748b;--patch-modal-line: rgba(148, 163, 184, .32);--patch-modal-line-strong: rgba(100, 116, 139, .42);--patch-modal-surface: rgba(255, 255, 255, .96);--patch-modal-soft: rgba(248, 250, 252, .86);--patch-modal-focus: rgba(10, 102, 255, .18);--patch-modal-shadow: 0 28px 76px rgba(15, 23, 42, .22), 0 2px 8px rgba(15, 23, 42, .08);--patch-modal-scrim: rgba(15, 23, 42, .32);--patch-modal-blur: blur(18px) saturate(140%)}@keyframes patch-modal-rise{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.patch-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--patch-modal-scrim);-webkit-backdrop-filter:var(--patch-modal-blur);backdrop-filter:var(--patch-modal-blur)}.patch-modal{width:min(100%,460px);max-height:calc(100vh - 48px);overflow-y:auto;box-sizing:border-box;padding:0;background:var(--patch-modal-surface);border:1px solid var(--patch-modal-line);border-radius:14px;box-shadow:var(--patch-modal-shadow);color:var(--patch-modal-ink);animation:patch-modal-rise .18s cubic-bezier(.2,.8,.2,1)}.patch-modal>h3{margin:0;padding:20px 22px 18px;border-bottom:1px solid var(--patch-modal-line);color:var(--patch-modal-ink);font-size:19px;line-height:1.25;font-weight:800;letter-spacing:0}.patch-modal>p{margin:0;padding:18px 22px 0;color:#475569;font-size:14px;line-height:1.5}.patch-modal>p+p{padding-top:8px}.patch-modal-label{margin:14px 22px 7px;color:#334155;font-size:13px;line-height:1.2;font-weight:700}.patch-modal-input,.patch-modal-textarea{width:calc(100% - 44px);margin:0 22px 12px;box-sizing:border-box;border:1px solid var(--patch-modal-line-strong);border-radius:10px;background:#fff;color:#0f172a;font-family:var(--font-family, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif);font-size:14px;line-height:1.4;transition:border-color .14s ease,box-shadow .14s ease}.patch-modal-input{min-height:44px;padding:10px 12px;font-weight:600}.patch-modal-textarea{padding:11px 12px;resize:vertical}.patch-modal-textarea--pgn{height:180px;font-size:12px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.patch-modal-input:focus,.patch-modal-textarea:focus{outline:none;border-color:var(--patch-modal-blue);box-shadow:0 0 0 3px var(--patch-modal-focus)}.patch-modal-hint-text,.patch-modal-hint{display:block;margin:-5px 22px 12px;color:#64748b;font-size:12px;line-height:1.45}.patch-modal-error{margin:0 22px 12px;padding:9px 10px;border:1px solid rgba(255,59,48,.24);border-radius:10px;background:#ff3b3014;color:var(--patch-modal-red-strong);font-size:13px;line-height:1.4}.patch-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin:0;padding:16px 22px 22px;border-top:1px solid var(--patch-modal-line)}.patch-modal-button{min-height:42px;padding:9px 15px;border:1px solid var(--patch-modal-line-strong);border-radius:10px;background:#fff;color:#334155;font-family:var(--font-family, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif);font-size:14px;line-height:1;font-weight:700;cursor:pointer;transition:transform .1s ease-out,background .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease}.patch-modal-button:hover:not(:disabled){background:var(--patch-modal-soft);border-color:var(--patch-modal-line-strong);color:var(--patch-modal-ink)}.patch-modal-button:active:not(:disabled){transform:scale(.98)}.patch-modal-button:focus-visible{outline:none;border-color:var(--patch-modal-blue);box-shadow:0 0 0 3px var(--patch-modal-focus)}.patch-modal-button.primary{background:var(--patch-modal-blue);border-color:var(--patch-modal-blue);color:#fff}.patch-modal-button.primary:hover:not(:disabled){background:var(--patch-modal-blue-strong);border-color:var(--patch-modal-blue-strong);box-shadow:0 10px 22px #0a66ff2e}.patch-modal-button.secondary{background:var(--patch-modal-soft);border-color:var(--patch-modal-line-strong);color:#475569}.patch-modal-button:disabled{opacity:.52;cursor:not-allowed}.patch-modal-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:16px 22px 4px;padding:4px;border:1px solid var(--patch-modal-line);border-radius:12px;background:var(--patch-modal-soft)}.patch-modal-tab{min-height:34px;padding:7px 10px;border:1px solid transparent;border-radius:9px;background:transparent;color:#475569;font-size:13px;font-weight:700;cursor:pointer}.patch-modal-tab:hover:not(:disabled){color:var(--patch-modal-blue-strong)}.patch-modal-tab.is-active{background:#fff;border-color:#0a66ff3d;color:var(--patch-modal-blue-strong);box-shadow:0 1px 2px #0f172a14}.patch-modal-pgn-actions{display:flex;align-items:center;gap:8px;margin:0 22px 12px}.patch-modal-pgn-preview,.patch-modal-progress,.large-pgn-preview,.large-pgn-done{margin:0 22px 14px;border:1px solid var(--patch-modal-line);border-radius:10px;background:var(--patch-modal-soft)}.patch-modal-pgn-preview{padding:12px;color:#334155;font-size:13px}.patch-modal-pgn-preview__first{margin-top:4px;color:#64748b;font-size:12px}.patch-modal-progress{padding:12px}.patch-modal-progress__label{color:#475569;font-size:12px;font-weight:650}.patch-modal-progress__bar{height:7px;background:#94a3b83d;border-radius:999px}.patch-modal-progress__fill{background:var(--patch-modal-blue);border-radius:999px}.patch-modal--large-pgn{width:min(100%,520px)}.large-pgn-preview,.large-pgn-done{padding:14px}.large-pgn-preview__row{font-size:13px;color:#475569}.large-pgn-preview__row strong{color:#0f172a}.large-pgn-preview__warn{background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;color:#9a3412}.large-pgn-studies-progress{margin:0 22px 10px}.large-pgn-study-dot{background:#dbe7f5}.large-pgn-study-dot.done{background:#16a34a}.large-pgn-study-dot.active{background:var(--patch-modal-blue);box-shadow:0 0 0 3px var(--patch-modal-focus)}.large-pgn-done__icon{width:34px;height:34px;border-radius:999px;background:#dcfce7;color:#15803d;display:inline-flex;align-items:center;justify-content:center;font-size:20px;font-weight:800}.patch-modal--large-pgn{display:flex;flex-direction:column;width:min(100%,560px);overflow:hidden}.patch-modal--large-pgn .large-pgn-modal-title{padding:22px 24px;font-size:20px;line-height:1.2}.large-pgn-modal-body{padding:22px 24px 20px}.large-pgn-modal-body--status{padding:24px}.large-pgn-modal-copy{margin:0;color:#334155;font-size:14px;line-height:1.55}.large-pgn-modal-hint{margin:8px 0 0;color:#64748b;font-size:13px;line-height:1.5}.patch-modal--large-pgn .patch-modal-progress,.patch-modal--large-pgn .large-pgn-preview,.patch-modal--large-pgn .large-pgn-done{margin:0}.patch-modal-progress--large-pgn{padding:20px 22px;border:1px solid var(--patch-modal-line);border-radius:12px;background:#f8fbff;box-shadow:inset 0 1px #ffffffc7}.patch-modal-progress__meta{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:14px}.patch-modal-progress--large-pgn .patch-modal-progress__label{margin:0;color:#334155;font-size:14px;font-weight:750;line-height:1.25}.patch-modal-progress__count{flex:0 0 auto;color:#64748b;font-size:13px;font-weight:750;line-height:1.25}.patch-modal-progress--large-pgn .patch-modal-progress__bar{height:9px;background:#94a3b83d}.patch-modal-progress--large-pgn .patch-modal-progress__fill{background:linear-gradient(90deg,var(--patch-modal-blue) 0%,var(--patch-modal-blue-strong) 100%)}.patch-modal--large-pgn .large-pgn-studies-progress{margin:0 0 14px}.large-pgn-modal-footer{padding:18px 24px 24px;border-top:1px solid var(--patch-modal-line);background:#fff}.patch-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 22px 18px;border-bottom:1px solid var(--patch-modal-line)}.patch-modal-header h3{margin:0;color:var(--patch-modal-ink);font-size:19px;line-height:1.25;font-weight:800}.patch-modal-close{width:32px;height:32px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--patch-modal-muted);cursor:pointer;transition:transform .1s ease-out,background .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease}.patch-modal-close:hover{background:var(--patch-modal-soft);border-color:var(--patch-modal-line);color:var(--patch-modal-ink)}.patch-modal-close:active{transform:scale(.96)}.patch-modal-close:focus-visible{outline:none;border-color:var(--patch-modal-blue);box-shadow:0 0 0 3px var(--patch-modal-focus)}.patch-share-modal{width:min(100%,620px)}.patch-share-add-row{display:grid;grid-template-columns:minmax(0,1fr) 120px auto;gap:10px;padding:20px 22px 14px}.patch-share-search-wrap{position:relative}.patch-share-search-input,.patch-share-permission-select{width:100%;min-height:40px;box-sizing:border-box;border:1px solid var(--patch-modal-line-strong);border-radius:10px;background:#fff;color:#0f172a;padding:9px 11px;font-family:var(--font-family, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif);font-size:14px}.patch-share-search-input:focus,.patch-share-permission-select:focus{outline:none;border-color:var(--patch-modal-blue);box-shadow:0 0 0 3px var(--patch-modal-focus)}.patch-share-search-spinner{position:absolute;right:12px;top:50%;width:12px;height:12px;border:2px solid rgba(10,102,255,.18);border-top-color:var(--patch-modal-blue);border-radius:999px;transform:translateY(-50%);animation:pgn-indeterminate .9s linear infinite}.patch-share-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:2;margin:0;padding:6px;list-style:none;background:#fff;border:1px solid var(--patch-modal-line);border-radius:10px;box-shadow:0 16px 34px #0f172a24}.patch-share-dropdown--empty{color:#64748b;font-size:13px}.patch-share-dropdown-item{width:100%;min-height:34px;border:0;border-radius:7px;background:transparent;color:#0f172a;text-align:left;font-weight:650;cursor:pointer}.patch-share-dropdown-item:hover{background:#0a66ff14;color:var(--patch-modal-blue-strong)}.patch-share-add-btn,.patch-share-revoke-btn{min-height:40px;padding:8px 13px;border-radius:8px;font-weight:700;cursor:pointer}.patch-share-add-btn{border:1px solid var(--patch-modal-blue);background:var(--patch-modal-blue);color:#fff}.patch-share-add-btn:disabled{opacity:.5;cursor:not-allowed}.patch-share-error{margin:0 22px 12px;padding:9px 10px;border:1px solid rgba(255,59,48,.24);border-radius:10px;background:#ff3b3014;color:var(--patch-modal-red-strong);font-size:13px}.patch-share-list{margin:0 22px 22px}.patch-share-list h4{margin:0 0 8px;color:#64748b;font-size:11px;font-weight:800;letter-spacing:0;text-transform:uppercase}.patch-share-list ul{display:grid;gap:6px;margin:0;padding:0;list-style:none}.patch-share-list-item{display:grid;grid-template-columns:minmax(0,1fr) 120px auto;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--patch-modal-line);border-radius:10px;background:#fff}.patch-share-list-username{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#0f172a;font-size:14px;font-weight:700}.patch-share-permission-select--inline{min-height:34px}.patch-share-revoke-btn{border:1px solid rgba(255,59,48,.24);background:#fff;color:var(--patch-modal-red-strong)}.patch-share-revoke-btn:hover{background:#ff3b3014}@media (max-width: 640px){.patch-modal-overlay{align-items:flex-end;padding:12px}.patch-modal,.patch-modal--large-pgn,.patch-share-modal{width:100%;max-height:calc(100vh - 24px)}.patch-modal-actions{flex-direction:column-reverse}.patch-modal-button{width:100%}.patch-modal--large-pgn .large-pgn-modal-title{padding:18px;font-size:18px}.large-pgn-modal-body,.large-pgn-modal-body--status,.patch-modal-progress--large-pgn{padding:18px}.patch-modal-progress__meta{gap:10px;margin-bottom:12px}.large-pgn-modal-footer{padding:16px 18px 18px}.patch-share-add-row,.patch-share-list-item,.study-share-search-row,.study-share-person{grid-template-columns:1fr}.study-share-presence-eye{justify-self:start}.study-follow-btn{justify-self:stretch}.study-share-role-select--inline,.study-share-remove-btn{justify-self:stretch;width:100%}}@media (prefers-reduced-motion: reduce){.patch-modal,.patch-confirm-card{animation:none}.patch-modal-button,.patch-modal-close,.patch-confirm-btn,.patch-modal-tab,.patch-share-dropdown-item{transition:none}}@media (prefers-reduced-transparency: reduce){.patch-modal-overlay,.patch-confirm-overlay{background:#0f172a75;-webkit-backdrop-filter:none;backdrop-filter:none}.patch-modal,.patch-confirm-card{background:#fff}}@media (prefers-contrast: more){.patch-modal,.patch-confirm-card,.patch-modal-input,.patch-modal-textarea,.patch-modal-button,.patch-confirm-btn,.patch-share-search-input,.patch-share-permission-select,.patch-share-list-item{border-color:#475569}}.game-viewer-page{padding-top:16px}.game-viewer-footer{margin-top:0}.game-viewer-footer-row{--analysis-footer-gap: 16px}.game-viewer-footer .study-info-panel,.game-viewer-footer .study-output-card{width:100%;box-sizing:border-box}.game-viewer-footer .study-output-actions{flex-wrap:wrap}.my-games-workbench-list .patch-chapter-list__header{grid-template-columns:minmax(0,1fr)}.my-games-workbench-list__item{align-items:flex-start}.my-games-workbench-list__title{display:flex;flex-direction:column;gap:4px;white-space:normal}.my-games-workbench-list__title>span,.my-games-workbench-list__title>small{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-games-workbench-list__title>span{color:#0f172a;font-size:13px;font-weight:800}.my-games-workbench-list__title>small{color:#64748b;font-size:11px;font-weight:700}.game-viewer-loading,.game-viewer-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 120px);gap:16px;color:#9ca3af}.game-card{padding:0;font-family:Google Sans,Roboto,-apple-system,sans-serif;font-size:13px}.game-card__source{padding:10px 14px 6px;font-size:9px;font-weight:700;letter-spacing:0;text-transform:uppercase;color:#888;-webkit-user-select:none;user-select:none}.game-card__players{padding:8px 14px 10px;display:flex;flex-direction:column;gap:10px}.game-card__player{display:flex;align-items:center;gap:9px;min-width:0}.game-card__dot{flex-shrink:0;width:13px;height:13px;border-radius:50%}.game-card__dot--white{background:#d8d8d8;box-shadow:inset 0 -1px 2px #0006,0 1px 4px #00000080}.game-card__dot--black{background:#111;border:1.5px solid #404040;box-shadow:inset 0 1px 2px #ffffff0d,0 1px 4px #000000b3}.game-card__name{flex:1;font-weight:600;font-size:12.5px;color:#000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:0}.game-card__rating{flex-shrink:0;font-size:11px;font-weight:500;color:#666;font-variant-numeric:tabular-nums;letter-spacing:0}.game-card__result{display:flex;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb}.game-card__result-rule{flex:1;height:1px;background:#ccc}.game-card__result-text{font-size:15px;font-weight:700;letter-spacing:0;font-variant-numeric:tabular-nums}.game-card__result--white .game-card__result-text,.game-card__result--black .game-card__result-text,.game-card__result--draw .game-card__result-text{color:#111}.game-card__meta{padding:10px 14px 4px;display:flex;flex-direction:column;gap:4px}.game-card__event{font-size:11.5px;color:#444;line-height:1.45;font-style:italic}.game-card__date{font-size:11px;color:#888;font-variant-numeric:tabular-nums;letter-spacing:0}
