:root{--primary: #1A73E8;--primary-hover: #174EA6;--primary-bg: #E8F0FE;--surface: #FFFFFF;--bg-app: #F8F9FA;--text-main: #202124;--text-secondary: #5F6368;--text-disabled: #DADCE0;--border: #DADCE0;--success: #1E8E3E;--error: #D93025;--warning: #F9AB00;--font-family: "Google Sans", "Roboto", -apple-system, sans-serif;--font-xs: 12px;--font-sm: 14px;--font-md: 16px;--font-lg: 20px;--font-xl: 24px;--radius-pill: 20px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--shadow-1: 0 1px 2px 0 rgba(60,64,67,.3), 0 1px 3px 1px rgba(60,64,67,.15);--shadow-2: 0 4px 8px 3px rgba(60,64,67,.15);--shadow-3: 0 8px 16px 4px rgba(60,64,67,.15);--overlay-bg: rgba(0, 0, 0, .4);--bg-secondary: #EEEEEE;--bg-hover: rgba(0, 0, 0, .04)}.login-container{display:flex;justify-content:center;align-items:center;height:100vh;background-color:var(--bg-app)}.login-card{background-color:var(--surface);padding:var(--space-xl);border-radius:var(--radius-md);box-shadow:var(--shadow-1);width:100%;max-width:400px}.login-title{font-family:var(--font-family);font-size:var(--font-xl);color:var(--text-main);margin-bottom:var(--space-lg);text-align:center}.login-footer{margin-top:var(--space-lg);text-align:center;font-size:var(--font-sm);color:var(--text-secondary)}.login-footer a{color:var(--primary);text-decoration:none}.login-footer a:hover{text-decoration:underline}.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 1fr;height:100vh;background-color:var(--bg-app);font-family:var(--font-family)}.workspace-sidebar{background-color:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:var(--space-md)}.sidebar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.sidebar-header h2{font-size:var(--font-md);color:var(--text-main)}.btn-sm{padding:var(--space-xs) var(--space-sm);font-size:var(--font-xs)}.workspace-main{display:flex;flex-direction:column;overflow:hidden}.main-header{background-color:var(--surface);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border);display:flex;align-items:center}.breadcrumb{display:flex;gap:var(--space-xs);font-size:var(--font-sm);color:var(--text-secondary)}.breadcrumb-item{cursor:pointer}.breadcrumb-item:hover{color:var(--primary);text-decoration:underline}.breadcrumb-item:after{content:"/";margin-left:var(--space-xs);color:var(--text-disabled)}.breadcrumb-item:last-child:after{content:""}.items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-lg);padding:var(--space-lg);overflow-y:auto}.grid-item{background-color:var(--surface);border-radius:var(--radius-md);padding:var(--space-md);display:flex;flex-direction:column;align-items:center;cursor:pointer;transition:transform .2s,box-shadow .2s;border:1px solid transparent}.grid-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-2);border-color:var(--primary-bg)}.item-icon{color:var(--primary);margin-bottom:var(--space-sm)}.item-info{text-align:center;width:100%}.item-title{display:block;font-size:var(--font-sm);font-weight:600;color:var(--text-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-meta{font-size:var(--font-xs);color:var(--text-secondary)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--overlay-bg);display:flex;justify-content:center;align-items:center;z-index:1000}.modal-card{background-color:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-3);width:100%;max-width:450px;display:flex;flex-direction:column}.modal-header{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;cursor:move}.modal-header h3{margin:0;font-size:var(--font-lg)}.modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-secondary)}.modal-body{padding:var(--space-lg)}.modal-footer{padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:var(--space-md)}.btn-text{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:var(--space-sm) var(--space-md)}.btn-text:hover{color:var(--text-main)}.action-card,.move-card,.confirm-card{max-width:420px}.modal-title-group{display:flex;flex-direction:column;gap:4px}.modal-eyebrow{font-size:var(--font-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em}.modal-title{margin:0}.action-body{display:grid;gap:var(--space-md)}.action-btn{border:1px solid var(--border);background:var(--surface);padding:var(--space-md);border-radius:var(--radius-md);font-size:var(--font-sm);cursor:pointer;transition:border-color .2s,transform .2s,box-shadow .2s}.action-btn:hover{border-color:var(--primary);transform:translateY(-1px);box-shadow:var(--shadow-1)}.action-btn.danger{border-color:var(--danger, #e05d5d);color:var(--danger, #e05d5d)}.confirm-text{margin:0;color:var(--text-main);font-size:var(--font-sm)}.btn-danger{background:var(--danger, #e05d5d);color:#fff;border:none;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);cursor:pointer}.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);height:100vh;min-height:100vh;background-color:var(--bg-app);font-family:var(--font-family);overflow:hidden}.study-sidebar,.study-right-panel{background-color:var(--surface);display:flex;flex-direction:column;min-height:0}.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}.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)}.chapter-list{flex:1;overflow-y:auto;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}.board-mount{width:100%;max-width:600px;min-height:320px;aspect-ratio:1 / 1;background-color:var(--bg-secondary);box-shadow:var(--shadow-2);display:flex;align-items:center;justify-content:center}.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;overflow-y:auto;padding:var(--space-md);min-height:0}.tab-content.active{display:flex;flex-direction:column}.analysis-module{margin-bottom:var(--space-md)}.move-tree{font-size:var(--font-sm);line-height:1.6}.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)}#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}.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)}.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:64px;background-color:#fff;border-bottom:1px solid #dbdbdb;font-family:Roboto,sans-serif}.header-left .logo{display:flex;align-items:center;text-decoration:none;color:#202124}.header-left .app-name{font-size:22px;font-weight:500;margin-left:8px}.header-center .nav-link{font-size:16px;font-weight:500;color:#5f6368;text-decoration:none;padding:8px 16px;border-radius:4px;transition:background-color .3s}.header-center .nav-link:hover{background-color:#f1f3f4}.header-right .username{font-size:16px;font-weight:500;color:#202124}.header-right .nav-link{font-size:16px;font-weight:500;color:#1a73e8;text-decoration:none}
