.alerts-page{flex-direction:column;gap:20px;height:100%;padding:24px;display:flex}.alerts-stats{gap:16px;display:flex}.alerts-layout{flex:1;grid-template-columns:380px 1fr;align-items:start;gap:20px;min-height:500px;display:grid}.alerts-list-panel{border:1px solid var(--border);background:#fff;border-radius:12px;flex-direction:column;height:600px;display:flex;overflow:hidden}.alerts-list{flex:1;overflow-y:auto}.alert-row{border-bottom:1px solid var(--border);cursor:pointer;align-items:center;gap:12px;padding:14px 16px;transition:background .2s;display:flex}.alert-row:hover{background:#f9fafb}.alert-row.selected{background:#f4f5f7}.alert-row-info{flex-direction:column;flex:1;min-width:0;display:flex}.alert-row-info strong{color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.alert-row-info span{color:var(--text-muted);margin-top:2px;font-size:12px}.alert-avatar-sm{color:#4f46e5;background:#eef2ff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.alert-avatar-lg{color:#4f46e5;background:#eef2ff;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.alert-detail-panel{border:1px solid var(--border);background:#fff;border-radius:12px;flex-direction:column;gap:24px;min-height:600px;padding:24px;display:flex}.alert-detail-empty{border:2px dashed var(--border);color:var(--text-muted);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;height:600px;font-size:14px;display:flex}.alert-body-box{color:#334155;white-space:pre-wrap;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:16px;font-size:14px;line-height:1.6}.group-badge{border-radius:6px;margin-top:4px;padding:4px 8px;font-size:12px;font-weight:500;display:inline-block}.badge-all{color:#15803d;background:#dcfce7}.badge-group{color:#1d4ed8;background:#dbeafe}@media (width<=768px){.alerts-layout{grid-template-columns:1fr;min-height:auto}.alerts-list-panel{height:40vh}.alert-detail-panel,.alert-detail-empty{height:auto}.alerts-stats{flex-wrap:wrap}.stat-card{flex:40%}}.athletes-page{padding:20px}.athletes-stats{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:10px;margin-bottom:20px;display:grid}.stat-card .stat-value{color:var(--primary);font-size:24px;font-weight:700;display:block}.stat-card .stat-label{color:var(--text-muted);font-size:12px}.athletes-layout{grid-template-columns:320px 1fr;align-items:start;gap:20px;display:grid}.athletes-list-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.list-search{border-bottom:1px solid var(--border);background:var(--bg-main);padding:12px;position:relative}.list-search .search-icon{color:var(--text-muted);position:absolute;top:50%;left:22px;transform:translateY(-50%)}.list-search input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);width:100%;color:var(--text-primary);outline:none;padding:8px 12px 8px 30px;font-size:13px}.list-search input:focus{border-color:var(--primary)}.athletes-list{max-height:520px;overflow-y:auto}.athlete-row{cursor:pointer;border-bottom:1px solid var(--border-light);align-items:center;gap:12px;padding:12px 16px;transition:all .15s;display:flex}.athlete-row:last-child{border-bottom:none}.athlete-row:hover{background:var(--bg-main)}.athlete-row.selected{background:var(--primary-light);border-left:3px solid var(--primary)}.athlete-avatar-sm{background:linear-gradient(135deg, var(--primary), #00c6ff);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;font-weight:600;display:flex}.athlete-row-info{flex:1;min-width:0}.athlete-row-info strong{white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;font-size:14px;display:block;overflow:hidden}.athlete-row-info span{color:var(--text-muted);font-size:12px}.athlete-row-percent{flex-shrink:0;font-size:13px;font-weight:700}.list-empty{text-align:center;color:var(--text-muted);padding:30px;font-size:14px}.athlete-detail-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);position:sticky;top:20px;overflow:hidden}.athlete-detail-empty{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:60px;font-size:14px;display:flex}.detail-header{border-bottom:1px solid var(--border);background:var(--bg-main);align-items:center;gap:14px;padding:20px;display:flex;position:relative}.athlete-avatar-lg{background:linear-gradient(135deg, var(--primary), #00c6ff);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:20px;font-weight:700;display:flex}.detail-header h2{margin-bottom:4px;font-size:17px}.detail-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;padding:4px;display:flex;position:absolute;top:16px;right:16px}.detail-close:hover{background:var(--bg-card)}.detail-section{border-bottom:1px solid var(--border-light);padding:16px 20px}.detail-section h3{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:6px;margin-bottom:12px;font-size:13px;font-weight:600;display:flex}.detail-row{color:var(--text-primary);align-items:center;gap:8px;margin-bottom:8px;font-size:14px;display:flex}.detail-row:last-child{margin-bottom:0}.detail-stats{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px;display:grid}.detail-stat{text-align:center}.detail-stat-value{font-size:22px;font-weight:700;display:block}.detail-stat-label{color:var(--text-muted);font-size:11px}.detail-progress{background:var(--bg-main);border-radius:10px;height:8px;overflow:hidden}.detail-progress-fill{background:linear-gradient(90deg, var(--primary), #00c6ff);border-radius:10px;height:100%;transition:width .4s}.detail-actions{gap:10px;padding:14px 20px;display:flex}.group-badge{background:var(--primary-light);color:var(--primary);border-radius:20px;padding:3px 10px;font-size:12px;font-weight:500}.btn-small{align-items:center;gap:6px;padding:8px 14px;font-size:13px;display:inline-flex}.error-message{color:#ef4444;margin-top:4px;font-size:12px}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-header h2{font-size:16px}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px;display:flex}.modal-close:hover{background:var(--bg-main)}.form-group label{color:var(--text-secondary);align-items:center;gap:6px;margin-bottom:6px;font-size:13px;font-weight:500;display:flex}.form-group input,.form-group select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);width:100%;color:var(--text-primary);outline:none;padding:10px 12px;font-size:14px;transition:all .2s}@media (width<=768px){.athletes-page{padding:12px}.athletes-layout{grid-template-columns:1fr}.athletes-list{max-height:300px}.athlete-detail-panel{position:static}.detail-stats,.athletes-stats{grid-template-columns:repeat(2,1fr)}}.attendance-page{max-width:1500px;margin:0 auto;padding:24px}.page-header h1{letter-spacing:-.4px;color:var(--text-primary);margin:0;font-size:24px;font-weight:700;line-height:1.2}.btn-back-focus{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:9px;align-items:center;gap:7px;padding:8px 13px;font-size:12px;font-weight:500;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.btn-back-focus:hover{background:var(--bg-card);color:var(--text-primary);border-color:var(--text-muted)}.attendance-layout{grid-template-columns:330px minmax(0,1fr);align-items:start;gap:18px;display:grid}.attendance-layout.single-focus{grid-template-columns:minmax(0,900px);max-width:900px;margin:0 auto}.training-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;position:sticky;top:20px;overflow:hidden}.training-panel-header{background:var(--bg-card);border-bottom:1px solid var(--border);padding:16px}.training-panel-header h3{letter-spacing:-.1px;color:var(--text-primary);text-transform:none;margin:0 0 13px;font-size:13px;font-weight:650}.filters-wrapper{flex-direction:column;gap:8px;display:flex}.search-input-container{width:100%;position:relative}.search-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.training-search{box-sizing:border-box;border:1px solid var(--border);background:var(--bg-main);width:100%;height:38px;color:var(--text-primary);border-radius:9px;outline:none;padding:0 12px 0 34px;font-size:12px;transition:border-color .15s,background .15s,box-shadow .15s}.training-search::placeholder{color:var(--text-muted)}.training-search:focus{background:var(--bg-card);border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.search-date-hint{display:none}.filter-row{gap:7px;display:flex}.filter-select{border:1px solid var(--border);background:var(--bg-main);min-width:0;height:34px;color:var(--text-secondary);cursor:pointer;border-radius:8px;outline:none;flex:1;padding:0 9px;font-size:11px;font-weight:500;transition:border-color .15s,color .15s,background .15s}.filter-select:hover{color:var(--text-primary);background:var(--bg-card)}.filter-select:focus{border-color:var(--primary)}.training-list{scrollbar-width:thin;max-height:calc(100vh - 280px);overflow-y:auto}.training-list::-webkit-scrollbar{width:5px}.training-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:10px}.training-item{cursor:pointer;border-bottom:1px solid var(--border-light);background:var(--bg-card);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 16px;transition:background .15s,padding-left .15s;display:grid;position:relative}.training-item:last-child{border-bottom:none}.training-item:hover{background:var(--bg-main)}.training-item.selected{background:var(--primary-light)}.training-item.selected:before{content:"";background:var(--primary);border-radius:0 4px 4px 0;width:3px;position:absolute;top:8px;bottom:8px;left:0}.training-item.selected .training-item-info strong{color:var(--primary)}.training-item-info{min-width:0}.training-item-info strong{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;margin-bottom:5px;font-size:12px;font-weight:650;line-height:1.3;display:block;overflow:hidden}.training-item-group{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:7px;font-size:10px;display:flex;overflow:hidden}.badge-dot{white-space:nowrap;align-items:center;font-size:9px;font-weight:600;display:inline-flex}.badge-dot.checked{color:var(--success)}.badge-dot.unchecked{color:#d97706}.training-item-date{text-align:right;flex-shrink:0;grid-template-columns:auto auto;align-items:center;column-gap:9px;display:grid}.training-item-date .date{color:var(--text-secondary);grid-column:1;font-size:11px;font-weight:550}.training-item-date .full-date{display:none}.training-item-date .time{color:var(--text-primary);grid-column:2;font-size:12px;font-weight:650}.training-empty{text-align:center;color:var(--text-muted);padding:35px 20px;font-size:12px}.attendance-content{flex-direction:column;gap:14px;display:flex}.attendance-header-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:20px 22px;position:relative;overflow:hidden}.attendance-header-card:after{content:"";background:var(--primary-light);pointer-events:none;border-radius:50%;width:150px;height:150px;position:absolute;top:-55px;right:-45px}.attendance-header-card h2{z-index:1;letter-spacing:-.3px;margin:0 0 10px;font-size:19px;font-weight:700;line-height:1.3;position:relative}.attendance-header-meta{z-index:1;flex-wrap:wrap;gap:7px;display:flex;position:relative}.attendance-header-meta span{background:var(--bg-main);border:1px solid var(--border-light);color:var(--text-secondary);border-radius:7px;align-items:center;gap:6px;padding:5px 9px;font-size:10px;font-weight:500;display:inline-flex}.attendance-header-meta svg{color:var(--text-muted)}.attendance-stats{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.stat{background:var(--bg-card);border:1px solid var(--border);border-radius:11px;align-items:center;gap:12px;min-height:66px;padding:11px 15px;display:flex;position:relative;overflow:hidden}.stat:before{content:"";width:3px;position:absolute;top:0;bottom:0;left:0}.stat-present:before{background:var(--success)}.stat-absent:before{background:var(--danger)}.stat-total:before{background:var(--primary)}.stat .stat-value{letter-spacing:-.5px;font-size:24px;font-weight:750;line-height:1}.stat .stat-label{color:var(--text-muted);font-size:11px}.stat-present .stat-value{color:var(--success)}.stat-absent .stat-value{color:var(--danger)}.stat-total .stat-value{color:var(--primary)}.attendance-table{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;overflow:hidden}.attendance-table .table-header{background:var(--bg-main);border-bottom:1px solid var(--border);color:var(--text-muted);text-transform:uppercase;letter-spacing:.45px;grid-template-columns:minmax(0,2fr) 1fr 70px;padding:11px 18px;font-size:10px;font-weight:650;display:grid}.attendance-table .table-row{border-bottom:1px solid var(--border-light);grid-template-columns:minmax(0,2fr) 1fr 70px;align-items:center;min-height:56px;padding:8px 18px;transition:background .12s;display:grid}.attendance-table .table-row:last-child{border-bottom:none}.attendance-table .table-row:hover{background:var(--bg-main)}.athlete-name{min-width:0;color:var(--text-primary);align-items:center;gap:10px;font-size:13px;font-weight:550;display:flex}.athlete-avatar{background:var(--bg-main);border:1px solid var(--border);width:32px;height:32px;color:var(--text-secondary);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.status-badge{border-radius:7px;align-items:center;padding:5px 9px;font-size:10px;font-weight:600;display:inline-flex}.checkbox-container{cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;margin-left:auto;transition:background .12s;display:flex}.checkbox-container:hover{background:var(--bg-main)}.checkbox-container input{display:none}.checkmark{border:1.5px solid var(--border);background:var(--bg-card);border-radius:6px;width:18px;height:18px;transition:background .15s,border-color .15s,transform .12s;position:relative}.checkbox-container:hover .checkmark{border-color:var(--success)}.checkbox-container input:checked+.checkmark{background:var(--success);border-color:var(--success)}.checkbox-container input:checked+.checkmark:after{content:"";border-bottom:2px solid #fff;border-right:2px solid #fff;width:5px;height:9px;position:absolute;top:2px;left:5px;transform:rotate(45deg)}.checkbox-container input:disabled+.checkmark{opacity:.4}.checkbox-container:has(input:checked){background:var(--success-light)}.table-empty-row{text-align:center;color:var(--text-muted);padding:40px 20px;font-size:12px}.attendance-actions{justify-content:flex-end;padding-top:2px;display:flex}.btn-large{cursor:pointer;border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 18px;font-size:12px;font-weight:600;transition:opacity .15s,transform .12s,box-shadow .15s;display:inline-flex}.btn-large:hover{transform:translateY(-1px)}.btn-large:active{transform:translateY(0)}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 3px 10px #00000014}.btn-success{background:var(--success);color:#fff}.empty-state{background:var(--bg-card);border:1px solid var(--border);min-height:300px;color:var(--text-muted);border-radius:14px;justify-content:center;align-items:center;font-size:13px;display:flex}@media (width<=1100px){.attendance-layout{grid-template-columns:290px minmax(0,1fr)}}@media (width<=850px){.attendance-page{padding:16px}.attendance-layout{grid-template-columns:1fr}.training-panel{position:static}.training-list{max-height:300px}.attendance-layout.single-focus{max-width:none}}@media (width<=600px){.attendance-page{padding:12px}.page-header{margin-bottom:16px}.page-header h1{font-size:21px}.btn-back-focus{padding:7px 10px;font-size:11px}.training-panel-header{padding:13px}.training-item{padding:12px 13px}.training-item-info strong{font-size:11px}.training-item-group{font-size:9px}.training-item-date .date{font-size:10px}.training-item-date .time{font-size:11px}.attendance-header-card{padding:16px}.attendance-header-card h2{font-size:16px}.attendance-header-meta{gap:5px}.attendance-header-meta span{padding:4px 7px;font-size:9px}.attendance-stats{gap:7px}.stat{gap:8px;min-height:58px;padding:9px 11px}.stat .stat-value{font-size:19px}.stat .stat-label{font-size:9px}.attendance-table .table-header{grid-template-columns:minmax(0,1.5fr) 1fr 52px;padding:10px 12px;font-size:9px}.attendance-table .table-row{grid-template-columns:minmax(0,1.5fr) 1fr 52px;min-height:52px;padding:7px 12px}.athlete-name{gap:8px;font-size:12px}.athlete-avatar{border-radius:8px;width:29px;height:29px;font-size:10px}.status-badge{padding:4px 7px;font-size:9px}.checkbox-container{width:30px;height:30px}.checkmark{width:17px;height:17px}.attendance-actions,.btn-large{width:100%}}.events-section{width:100%;position:relative}.events-title-row{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.events-title-row>div:first-child{min-width:0}.events-title-row h2{color:#0f172a;margin:0 0 5px;font-size:21px;font-weight:600;line-height:1.35}.events-subtitle{color:#64748b;margin:0;font-size:14px;line-height:1.5}.events-header-actions{flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;display:flex}.events-list{flex-direction:column;gap:12px;display:flex}.event-card{box-sizing:border-box;background:#fff;border:1px solid #e2e8f0;border-radius:10px;width:100%;transition:border-color .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.event-card:hover{border-color:#cbd5e1;box-shadow:0 5px 16px #0f172a0f}.event-color{flex-shrink:0;align-self:stretch;width:5px;min-width:5px}.event-main{flex:1;min-width:0;padding:17px 18px}.event-header{justify-content:space-between;align-items:flex-start;gap:15px;display:flex}.event-header>div:first-child{min-width:0}.event-header h3{color:#0f172a;word-break:break-word;margin:0 0 7px;font-size:17px;font-weight:600;line-height:1.35}.event-label{color:#fff;white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box;border-radius:999px;align-items:center;max-width:100%;padding:3px 9px;font-size:11px;font-weight:600;line-height:1.3;display:inline-flex;overflow:hidden}.event-actions{flex-shrink:0;align-items:center;gap:5px;display:flex}.event-actions .icon-btn{justify-content:center;align-items:center;display:flex}.event-actions .danger{color:#dc2626}.event-actions .danger:hover{color:#b91c1c;background:#fef2f2}.event-date{color:#475569;flex-wrap:wrap;align-items:center;gap:7px;margin-top:13px;font-size:14px;line-height:1.5;display:flex}.event-date svg{color:#64748b;flex-shrink:0}.event-date span{word-break:break-word}.event-date strong{color:#0f172a;font-weight:600}.event-date .event-all-day{color:#475569;background:#f1f5f9;border-radius:999px;align-items:center;margin:0;padding:3px 8px;font-size:11px;font-weight:600;line-height:1.3;display:inline-flex}.event-description{color:#475569;white-space:pre-line;word-break:break-word;margin:12px 0 0;font-size:14px;line-height:1.55}.event-visibility{color:#64748b;border-top:1px solid #f1f5f9;flex-wrap:wrap;align-items:baseline;gap:5px;margin-top:12px;padding-top:11px;font-size:12px;line-height:1.5;display:flex}.event-visibility strong{color:#334155;word-break:break-word;font-weight:600}.events-empty{color:#64748b;text-align:center;box-sizing:border-box;border:1px dashed #cbd5e1;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:7px;min-height:220px;padding:30px;display:flex}.events-empty svg{color:#94a3b8;margin-bottom:5px}.events-empty strong{color:#334155;font-size:15px;font-weight:600}.events-empty span{color:#64748b;font-size:13px}.event-form-overlay{z-index:1000;box-sizing:border-box;background:#0f172a73;justify-content:center;align-items:center;width:100%;height:100%;padding:20px;display:flex;position:fixed;inset:0}.label-form-overlay{z-index:1100}.event-form-modal{box-sizing:border-box;background:#fff;border-radius:12px;width:min(680px,100%);max-height:calc(100vh - 40px);overflow-y:auto;box-shadow:0 20px 50px #0f172a33}.label-form-modal{width:min(460px,100%)}.event-form-header{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:flex-start;gap:20px;padding:22px 24px;display:flex}.event-form-header>div{min-width:0}.event-form-header h2{color:#0f172a;margin:0 0 5px;font-size:19px;font-weight:600;line-height:1.35}.event-form-header p{color:#64748b;margin:0;font-size:13px;line-height:1.5}.event-form-header .modal-close{color:#64748b;cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;width:34px;min-width:34px;height:34px;padding:0;transition:background .15s,color .15s;display:flex}.event-form-header .modal-close:hover{color:#0f172a;background:#f1f5f9}.event-form-modal .settings-form{padding:24px}.event-form-modal .form-group{margin-bottom:18px}.event-form-modal .form-group:last-child{margin-bottom:0}.event-form-modal .form-group>label,.event-form-modal .form-label-row>label{color:#334155;margin-bottom:6px;font-size:13px;font-weight:500;display:block}.event-form-modal input[type=text],.event-form-modal input[type=date],.event-form-modal input[type=time],.event-form-modal select,.event-form-modal textarea{box-sizing:border-box;color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:7px;outline:none;width:100%;font-family:inherit;font-size:14px;transition:border-color .15s,box-shadow .15s,background .15s}.event-form-modal input[type=text],.event-form-modal input[type=date],.event-form-modal input[type=time],.event-form-modal select{min-height:40px;padding:9px 11px}.event-form-modal textarea{resize:vertical;min-height:100px;padding:10px 12px;line-height:1.5}.event-form-modal input[type=text]:focus,.event-form-modal input[type=date]:focus,.event-form-modal input[type=time]:focus,.event-form-modal select:focus,.event-form-modal textarea:focus{border-color:#94a3b8;box-shadow:0 0 0 3px #94a3b826}.event-form-modal input::placeholder,.event-form-modal textarea::placeholder{color:#94a3b8}.form-label-row{justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.form-label-row label{margin-bottom:0}.add-label-button{color:#475569;cursor:pointer;background:#f1f5f9;border:0;border-radius:6px;align-items:center;gap:4px;padding:4px 8px;font-family:inherit;font-size:11px;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.add-label-button:hover{color:#0f172a;background:#e2e8f0}.selected-label-preview{color:#334155;background:#f8fafc;border:1px solid #e2e8f0;border-radius:7px;align-items:center;gap:9px;margin-top:9px;padding:8px 10px;font-size:13px;display:flex}.selected-label-color{border-radius:50%;flex-shrink:0;width:12px;height:12px}.event-schedule-box{box-sizing:border-box;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin-bottom:18px;padding:16px}.event-schedule-header{align-items:flex-start;margin-bottom:14px;display:flex}.event-schedule-header>div{flex-direction:column;gap:3px;display:flex}.event-schedule-header strong{color:#0f172a;font-size:14px;font-weight:600}.event-schedule-header span{color:#64748b;font-size:12px;line-height:1.4}.event-type-options{grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px;display:grid}.event-type-option{color:#475569;text-align:left;cursor:pointer;box-sizing:border-box;background:#fff;border:1px solid #cbd5e1;border-radius:9px;align-items:center;gap:11px;min-width:0;min-height:64px;padding:11px 13px;font-family:inherit;transition:border-color .15s,background .15s,color .15s,box-shadow .15s;display:flex}.event-type-option:hover{background:#f8fafc;border-color:#94a3b8}.event-type-option.active{color:#fff;background:#334155;border-color:#334155;box-shadow:0 2px 5px #0f172a1f}.event-type-option>svg{flex-shrink:0}.event-type-option>div{flex-direction:column;gap:2px;min-width:0;display:flex}.event-type-option strong{color:inherit;font-size:13px;font-weight:600;line-height:1.3}.event-type-option span{color:#64748b;font-size:11px;font-weight:400;line-height:1.35}.event-type-option.active span{color:#cbd5e1}.event-multiday-toggle{cursor:pointer;box-sizing:border-box;background:#fff;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:11px;width:100%;padding:11px 12px;transition:border-color .15s,background .15s;margin:0 0 14px!important;display:flex!important}.event-multiday-toggle:hover{background:#f8fafc;border-color:#cbd5e1}.event-multiday-toggle input[type=checkbox]{accent-color:#334155;cursor:pointer;box-sizing:border-box;border:0;flex:0 0 17px;max-width:17px;display:block;width:17px!important;min-width:17px!important;height:17px!important;margin:0!important;padding:0!important}.event-multiday-toggle>div{flex-direction:column;gap:2px;min-width:0;display:flex}.event-multiday-toggle strong{color:#334155;font-size:13px;font-weight:600;line-height:1.3}.event-multiday-toggle span{color:#64748b;font-size:11px;font-weight:400;line-height:1.35}.event-date-time-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:0;display:grid}.event-date-time-grid .form-group{min-width:0;margin-bottom:0}.event-date-time-grid .form-group label{color:#64748b;margin-bottom:6px;font-size:12px;font-weight:500}.event-date-time-grid .form-group:nth-child(3){grid-column:1/-1}.event-schedule-box>.event-date-time-grid+.event-date-time-grid{margin-top:12px}.event-schedule-box>.event-date-time-grid+.event-date-time-grid .form-group:nth-child(3){grid-column:auto}.label-preview-box{box-sizing:border-box;background:#f8fafc;border:1px solid #e2e8f0;border-radius:7px;align-items:center;min-height:55px;padding:12px;display:flex}.selection-box{box-sizing:border-box;background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;max-height:220px;padding:6px;overflow-y:auto}.selection-title{color:#334155;padding:7px 9px 10px;font-size:13px;font-weight:600}.event-form-modal .selection-item{color:#334155;text-align:left;cursor:pointer;box-sizing:border-box;background:0 0;border:0;border-radius:6px;gap:10px;width:100%;min-height:38px;font-family:inherit;font-size:14px;font-weight:400;line-height:1.4;transition:background .12s,color .12s;align-items:center!important;margin:0!important;padding:8px 9px!important;display:flex!important}.event-form-modal .selection-item:hover{background:#e2e8f0}.event-form-modal .selection-item input[type=checkbox]{accent-color:#334155;cursor:pointer;box-sizing:border-box;background:#fff;border:0;border-radius:3px;flex:0 0 17px;width:17px!important;min-width:17px!important;max-width:17px!important;height:17px!important;min-height:17px!important;margin:0!important;padding:0!important;display:block!important}.event-form-modal .selection-item>span{color:#334155;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:14px;font-weight:400;line-height:1.4;display:block;overflow:hidden}.selection-empty{color:#94a3b8;padding:12px 9px;font-size:13px}.event-form-modal input[type=color]{cursor:pointer;box-sizing:border-box;background:#fff;border:1px solid #cbd5e1;border-radius:7px;width:56px;min-width:56px;height:40px;padding:3px;display:block}.label-color-row{align-items:center;gap:10px;display:flex}.label-color-row input[type=text]{flex:1}.event-form-actions{border-top:1px solid #e2e8f0;justify-content:flex-end;align-items:center;gap:10px;margin-top:20px;padding-top:18px;display:flex}.event-form-modal::-webkit-scrollbar{width:7px}.selection-box::-webkit-scrollbar{width:7px}.event-form-modal::-webkit-scrollbar-track{background:0 0}.selection-box::-webkit-scrollbar-track{background:0 0}.event-form-modal::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}.selection-box::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}.event-form-modal::-webkit-scrollbar-thumb:hover{background:#94a3b8}.selection-box::-webkit-scrollbar-thumb:hover{background:#94a3b8}@media (width<=700px){.events-title-row{flex-direction:column;align-items:stretch}.events-header-actions{flex-wrap:wrap;justify-content:flex-start}.events-title-row .btn{align-self:flex-start}.event-form-overlay{align-items:flex-start;padding:10px;overflow-y:auto}.event-form-modal{max-height:calc(100vh - 20px)}.event-form-header,.event-form-modal .settings-form{padding:18px}}@media (width<=600px){.event-type-options,.event-date-time-grid{grid-template-columns:1fr}.event-date-time-grid .form-group:nth-child(3){grid-column:auto}.event-schedule-box{padding:13px}}@media (width<=500px){.events-header-actions{flex-direction:column;align-items:stretch;width:100%}.events-header-actions .btn{justify-content:center;width:100%}.event-main{padding:15px}.event-header{padding-right:0}.event-actions{position:absolute;top:12px;right:12px}.event-header h3{padding-right:75px}.event-date{align-items:flex-start}.event-visibility{flex-direction:column;gap:2px}.event-form-overlay{padding:0}.event-form-modal{border-radius:0;width:100%;min-height:100vh;max-height:100vh}.event-form-actions{flex-direction:column-reverse;align-items:stretch}.event-form-actions .btn{justify-content:center;width:100%}.label-color-row{align-items:stretch}.label-color-row input[type=color]{width:60px;min-width:60px;height:40px}.event-type-option{min-height:58px}.event-multiday-toggle{padding:10px 11px}.event-schedule-header{margin-bottom:12px}}.fitness-page{box-sizing:border-box;width:100%;max-width:none;padding:24px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:24px;display:flex}.page-header-left{flex-direction:column;gap:3px;display:flex}.page-header h1{color:var(--text-primary);align-items:center;gap:9px;font-size:20px;font-weight:700;display:flex}.page-subtitle{color:var(--text-muted);margin-left:29px;font-size:13px}.header-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.categories-section{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.categories-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;font-size:11px;font-weight:600}.categories-row{flex-wrap:wrap;gap:6px;display:flex}.category-tag{background:var(--bg-card);border:1px solid var(--border);border-radius:20px;align-items:center;gap:6px;padding:4px 10px 4px 12px;font-size:12px;transition:border-color .15s;display:inline-flex}.category-tag:hover{border-color:var(--primary)}.cat-name{color:var(--text-primary);font-weight:500}.cat-unit{background:var(--primary-light);color:var(--primary);border-radius:10px;padding:1px 7px;font-size:11px;font-weight:600}.cat-delete{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:50%;align-items:center;margin-left:2px;padding:3px;transition:all .15s;display:flex}.cat-delete:hover{background:var(--danger-light);color:var(--danger)}.fitness-filters{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;padding:10px 14px;display:flex}.filters-left{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.filters-right{flex-shrink:0;gap:8px;display:flex}.fitness-filters select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-main);color:var(--text-primary);cursor:pointer;outline:none;padding:7px 10px;font-size:13px;transition:border-color .15s}.fitness-filters select:focus{border-color:var(--primary)}.athlete-search{flex-shrink:0;width:210px;position:relative}.athlete-search>input{box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-main);width:100%;color:var(--text-primary);outline:none;padding:7px 32px 7px 10px;font-size:13px;transition:border-color .15s,box-shadow .15s}.athlete-search>input::placeholder{color:var(--text-muted)}.athlete-search>input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.athlete-search-clear{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:3px;display:flex;position:absolute;top:50%;right:7px;transform:translateY(-50%)}.athlete-suggestions{z-index:50;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);max-height:260px;box-shadow:var(--shadow-lg);padding:4px;position:absolute;top:calc(100% + 5px);left:0;right:0;overflow-y:auto}.athlete-suggestion{border-radius:var(--radius-sm);width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:9px;padding:8px 9px;font-size:13px;display:flex}.athlete-suggestion:hover,.athlete-suggestion.active{background:var(--bg-main)}.athlete-suggestion-avatar{background:linear-gradient(135deg, var(--primary) 0%, #00c6ff 100%);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:27px;height:27px;font-size:10px;font-weight:700;display:flex}.athlete-no-results{color:var(--text-muted);text-align:center;padding:12px 10px;font-size:12px}.date-filter{align-items:center;gap:6px;display:flex}.date-filter label{color:var(--text-muted);text-transform:uppercase;white-space:nowrap;font-size:11px;font-weight:600}.date-filter input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-main);color:var(--text-primary);cursor:pointer;outline:none;padding:7px 10px;font-size:13px;transition:border-color .15s}.date-filter input:focus{border-color:var(--primary)}.fitness-table-wrap{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:auto hidden}.fitness-table{min-width:580px}.ft-header{background:var(--bg-main);color:var(--text-muted);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.05em;grid-template-columns:2fr 1.5fr 1fr 1.2fr 2fr 80px;padding:10px 20px;font-size:11px;font-weight:600;display:grid}.ft-row{border-bottom:1px solid var(--border-light);grid-template-columns:2fr 1.5fr 1fr 1.2fr 2fr 80px;align-items:center;padding:12px 20px;font-size:13px;transition:background .12s;display:grid}.ft-row:last-child{border-bottom:none}.ft-row:hover{background:var(--bg-main)}.ft-athlete{color:var(--text-primary);align-items:center;gap:9px;font-weight:500;display:flex}.ft-avatar,.bulk-avatar{background:linear-gradient(135deg, var(--primary) 0%, #00c6ff 100%);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:11px;font-weight:700;display:flex}.category-badge{background:var(--primary-light);color:var(--primary);border-radius:20px;padding:3px 10px;font-size:12px;font-weight:500;display:inline-block}.ft-value{align-items:baseline;gap:4px;display:flex}.ft-value strong{color:var(--text-primary);font-size:15px;font-weight:700}.ft-unit{color:var(--text-muted);font-size:11px}.ft-date{color:var(--text-secondary);font-size:12px}.ft-notes{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.ft-actions{justify-content:flex-end;gap:4px;display:flex}.btn-icon-edit,.btn-icon-danger{cursor:pointer;border-radius:var(--radius-sm);color:var(--text-muted);background:0 0;border:none;align-items:center;padding:6px;transition:all .15s;display:flex}.btn-icon-edit:hover{background:var(--primary-light);color:var(--primary)}.btn-icon-danger:hover{background:var(--danger-light);color:var(--danger)}.fitness-empty{color:var(--text-muted);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:64px 20px;display:flex}.empty-icon{background:var(--bg-main);width:60px;height:60px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;margin-bottom:4px;display:flex}.empty-title{color:var(--text-secondary);font-size:15px;font-weight:600}.empty-sub{color:var(--text-muted);margin-bottom:8px;font-size:13px}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000073;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);border-radius:var(--radius-lg);width:100%;max-width:460px;box-shadow:var(--shadow-lg);max-height:90vh;overflow-y:auto}.bulk-modal{max-width:900px}.modal-header{border-bottom:1px solid var(--border);background:var(--bg-card);z-index:5;justify-content:space-between;align-items:center;padding:16px 20px;display:flex;position:sticky;top:0}.modal-header h2{color:var(--text-primary);font-size:15px;font-weight:600}.modal-description{color:var(--text-muted);margin-top:4px;font-size:12px}.modal-close{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:5px;transition:all .15s;display:flex}.modal-close:hover{background:var(--bg-main);color:var(--text-primary)}.modal-form{padding:18px 20px}.form-group label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:6px;margin-bottom:6px;font-size:12px;font-weight:600;display:flex}.label-optional{color:var(--text-muted);text-transform:none;letter-spacing:0;font-size:11px;font-weight:400}.form-group input,.form-group select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);width:100%;color:var(--text-primary);box-sizing:border-box;outline:none;padding:10px 12px;font-size:14px;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.error-message{color:var(--danger);margin-top:5px;font-size:12px;display:block}.bulk-settings{grid-template-columns:1.2fr 1.5fr 1fr;gap:12px;padding-bottom:4px;display:grid}.bulk-table-wrap{border:1px solid var(--border);border-radius:var(--radius-md);margin-top:8px;overflow:hidden}.bulk-table-header{background:var(--bg-main);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);grid-template-columns:2fr 1fr 1.5fr;gap:12px;padding:10px 14px;font-size:11px;font-weight:600;display:grid}.bulk-table-body{max-height:430px;overflow-y:auto}.bulk-row{border-bottom:1px solid var(--border-light);grid-template-columns:2fr 1fr 1.5fr;align-items:center;gap:12px;padding:8px 14px;display:grid}.bulk-row:last-child{border-bottom:none}.bulk-row:hover{background:var(--bg-main)}.bulk-athlete{align-items:center;gap:9px;min-width:0;display:flex}.bulk-athlete span{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.bulk-avatar{width:28px;height:28px}.bulk-row input{box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);width:100%;min-width:0;color:var(--text-primary);outline:none;padding:8px 10px;font-size:13px}.bulk-row input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.bulk-empty{min-height:180px;color:var(--text-muted);text-align:center;border:1px dashed var(--border);border-radius:var(--radius-md);flex-direction:column;justify-content:center;align-items:center;gap:8px;margin-top:8px;display:flex}.bulk-empty p{font-size:13px}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:none;justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--bg-main);color:var(--text-primary);border:1px solid var(--border)}.btn-ghost{color:var(--text-secondary);background:0 0;border:1px solid #0000}.btn-ghost:hover{background:var(--bg-main);border-color:var(--border)}@media (width<=768px){.fitness-page{box-sizing:border-box;width:100%;padding:14px;overflow-x:hidden}.fitness-filters{gap:8px}.filters-left{width:100%}.fitness-filters select{max-width:100%;font-size:12px}.athlete-search{width:100%}.date-filter{flex:1;min-width:140px}.date-filter input{flex:1;width:100%;min-width:0}.filters-right{width:100%}.filters-right .btn{flex:1}.ft-header{display:none}.ft-row{flex-direction:column;align-items:flex-start;gap:6px;padding:14px 16px;display:flex;position:relative}.ft-actions{position:absolute;top:12px;right:12px}.ft-notes{white-space:normal}.modal-overlay{align-items:flex-start;padding:10px;overflow-y:auto}.modal{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 20px);overflow-y:auto}.bulk-modal{width:100%;max-width:none}.modal-form{padding:14px}.bulk-settings{grid-template-columns:1fr}.bulk-table-wrap{width:100%;overflow-x:hidden}.bulk-table-header{grid-template-columns:minmax(0,1fr) 85px 110px;gap:6px;padding:8px 10px;font-size:9px;display:grid}.bulk-table-body{-webkit-overflow-scrolling:touch;max-height:50vh;overflow:hidden auto}.bulk-row{grid-template-columns:minmax(0,1fr) 85px 110px;align-items:center;gap:6px;padding:8px 10px;display:grid}.bulk-athlete{gap:6px;min-width:0}.bulk-athlete span{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;overflow:hidden}.bulk-avatar{flex-shrink:0;width:26px;height:26px}.bulk-row input{width:100%;min-width:0;padding:8px 7px;font-size:12px}.bulk-empty{min-height:140px}.form-row{grid-template-columns:1fr 1fr}}@media (width<=480px){.page-header{gap:10px}.header-actions{width:100%}.header-actions .btn{flex:1}.modal{border-radius:var(--radius-md);width:100%}.date-filter{min-width:100%}.date-filter label{width:20px}.bulk-table-header{grid-template-columns:minmax(0,1fr) 72px 92px;gap:5px;padding:7px 8px}.bulk-row{grid-template-columns:minmax(0,1fr) 72px 92px;gap:5px;padding:8px}.bulk-row input{padding:8px 5px;font-size:11px}.bulk-athlete span{font-size:11px}.bulk-avatar{width:24px;height:24px;font-size:10px}.modal-actions{background:var(--bg-card);padding-bottom:4px;position:sticky;bottom:0}}.groups-page{box-sizing:border-box;min-height:100%;padding:30px}.groups-page-header{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px;display:flex}.groups-page-header h1{color:var(--text-primary,#0f172a);margin:0;font-size:28px;font-weight:750;line-height:1.2}.groups-page-header p{color:var(--text-muted,#64748b);margin:7px 0 0;font-size:15px;line-height:1.5}.groups-create-button{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:9px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 17px;font-size:14px;font-weight:650;transition:background .15s,transform .1s,box-shadow .15s;display:inline-flex;box-shadow:0 2px 5px #2563eb2e}.groups-create-button:hover{background:#1d4ed8;box-shadow:0 4px 10px #2563eb38}.groups-create-button:active{transform:translateY(1px)}.groups-create-icon{font-size:20px;font-weight:400;line-height:1}.groups-grid{grid-template-columns:repeat(auto-fill,minmax(390px,1fr));gap:20px;display:grid}.group-card{background:var(--bg-card,#fff);border:1px solid var(--border,#e2e8f0);border-radius:14px;flex-direction:column;min-width:0;transition:box-shadow .18s,transform .18s,border-color .18s;display:flex;overflow:hidden;box-shadow:0 2px 5px #0f172a0a}.group-card:hover{border-color:#d5dce5;transform:translateY(-1px);box-shadow:0 8px 22px #0f172a12}.group-card-header{border-left:4px solid var(--group-color);border-bottom:1px solid var(--border-light,#edf0f4);align-items:center;gap:14px;min-height:82px;padding:18px 20px;display:flex;position:relative}.group-color{border-radius:11px;flex-shrink:0;width:44px;height:44px;box-shadow:inset 0 0 0 1px #00000014}.group-card-title{flex:1;min-width:0}.group-card-title h3{color:var(--text-primary,#0f172a);margin:0;font-size:18px;font-weight:700;line-height:1.3}.group-card-title p{color:var(--text-muted,#64748b);text-overflow:ellipsis;white-space:nowrap;margin:4px 0 0;font-size:14px;line-height:1.4;overflow:hidden}.group-athlete-count{color:#475569;background:#f1f5f9;border-radius:7px;flex-shrink:0;align-items:center;gap:5px;padding:6px 9px;font-size:13px;font-weight:650;display:inline-flex}.group-athletes{padding:20px}.section-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.section-heading>div{align-items:baseline;gap:8px;display:flex}.section-heading h4{color:var(--text-primary,#1e293b);margin:0;font-size:15px;font-weight:700}.section-heading span{color:#94a3b8;font-size:12px}.add-athlete-button{color:#2563eb;cursor:pointer;background:#eff6ff;border:1px solid #bfdbfe;border-radius:7px;align-items:center;gap:6px;height:32px;padding:0 10px;font-size:12px;font-weight:650;transition:all .15s;display:inline-flex}.add-athlete-button:hover{background:#dbeafe;border-color:#93c5fd}.athlete-list{flex-direction:column;gap:7px;display:flex}.athlete-item{box-sizing:border-box;background:#fafbfc;border:1px solid #edf0f4;border-radius:8px;align-items:center;gap:10px;min-height:44px;padding:5px 7px 5px 5px;transition:all .15s;display:flex}.athlete-item:hover{background:#f8fafc;border-color:#dbe2ea}.mini-avatar{color:#1d4ed8;background:#dbeafe;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:700;display:flex}.athlete-item>span{color:#334155;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;font-weight:550;overflow:hidden}.athlete-remove{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;margin-left:auto;transition:all .15s;display:flex}.athlete-remove:hover{color:#dc2626;background:#fee2e2}.athlete-empty{color:#94a3b8;background:#f8fafc;border:1px dashed #dbe2ea;border-radius:9px;justify-content:center;align-items:center;gap:8px;min-height:72px;font-size:13px;display:flex}.add-athlete-panel{background:#f8fbff;border:1px solid #dbeafe;border-radius:10px;margin-top:14px;padding:13px;position:relative}.add-athlete-panel-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.add-athlete-panel-header>div{flex-direction:column;gap:2px;display:flex}.add-athlete-panel-header strong{color:#1e293b;font-size:13px}.add-athlete-panel-header span{color:#64748b;font-size:11px}.add-athlete-close{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.add-athlete-close:hover{color:#0f172a;background:#e2e8f0}.athlete-search{align-items:center;display:flex;position:relative}.athlete-search>svg{color:#94a3b8;pointer-events:none;position:absolute;left:11px}.athlete-search input{box-sizing:border-box;color:#1e293b;background:#fff;border:1px solid #cbd5e1;border-radius:8px;outline:none;width:100%;height:40px;padding:0 38px 0 36px;font-size:13px}.athlete-search input::placeholder{color:#94a3b8}.athlete-search input:focus{border-color:#60a5fa;box-shadow:0 0 0 3px #3b82f61a}.athlete-search-clear{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:30px;height:30px;display:flex;position:absolute;right:5px}.athlete-search-clear:hover{color:#475569;background:#f1f5f9}.athlete-search-results{background:#fff;border:1px solid #e2e8f0;border-radius:8px;max-height:220px;margin-top:6px;overflow-y:auto;box-shadow:0 8px 20px #0f172a14}.athlete-search-result{box-sizing:border-box;text-align:left;cursor:pointer;background:#fff;border:none;border-bottom:1px solid #f1f5f9;align-items:center;gap:10px;width:100%;min-height:48px;padding:7px 10px;display:flex}.athlete-search-result:last-child{border-bottom:none}.athlete-search-result:hover{background:#f8fafc}.athlete-search-result .mini-avatar{width:30px;height:30px;font-size:12px}.athlete-search-result>span{color:#334155;flex:1;font-size:13px;font-weight:550}.athlete-search-result>svg{color:#2563eb}.athlete-search-empty{text-align:center;color:#94a3b8;padding:14px;font-size:12px}.selected-athlete{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;padding:8px;display:flex}.selected-athlete-info{align-items:center;gap:9px;min-width:0;display:flex}.selected-athlete-info>div:last-child{flex-direction:column;gap:2px;min-width:0;display:flex}.selected-athlete-info strong{color:#1e3a8a;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.selected-athlete-info span{color:#3b82f6;font-size:10px}.add-confirm-button{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:7px;flex-shrink:0;align-items:center;gap:5px;height:32px;padding:0 11px;font-size:12px;font-weight:650;display:inline-flex}.add-confirm-button:hover{background:#1d4ed8}.group-message-box{background:#f8fbff;border:1px solid #dbeafe;border-radius:10px;gap:11px;margin:0 20px 18px;padding:13px;display:flex}.group-message-icon{color:#2563eb;background:#dbeafe;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.group-message-content{flex-direction:column;min-width:0;display:flex}.group-message-content strong{color:#1e3a8a;font-size:13px;font-weight:700}.group-message-content span{color:#64748b;margin-top:3px;font-size:12px}.group-message-content span b{color:#334155}.group-message-content small{color:#94a3b8;margin-top:5px;font-size:11px;line-height:1.4}.group-actions{border-top:1px solid var(--border-light,#edf0f4);background:#fafbfc;gap:8px;padding:14px 20px;display:flex}.group-edit-button,.group-delete-button{cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:7px;height:38px;font-size:13px;font-weight:650;transition:all .15s;display:inline-flex}.group-edit-button{color:#475569;background:#fff;border:1px solid #cbd5e1;flex:1}.group-edit-button:hover{color:#2563eb;background:#eff6ff;border-color:#93c5fd}.group-delete-button{color:#dc2626;background:#fff;border:1px solid #fecaca;min-width:76px;padding:0 12px}.group-delete-button:hover{color:#fff;background:#dc2626;border-color:#dc2626}.groups-empty{text-align:center;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;min-height:300px;padding:40px;display:flex}.groups-empty-icon{color:#2563eb;background:#dbeafe;border-radius:14px;justify-content:center;align-items:center;width:58px;height:58px;margin-bottom:14px;display:flex}.groups-empty h3{color:#1e293b;margin:0;font-size:18px}.groups-empty p{color:#64748b;max-width:420px;margin:7px 0 20px;font-size:14px}.groups-modal-overlay{z-index:2000;box-sizing:border-box;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0f172a94;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.groups-modal{background:#fff;border:1px solid #e2e8f0;border-radius:15px;width:min(520px,100%);animation:.16s ease-out groupsModalIn;overflow:hidden;box-shadow:0 25px 70px #0f172a38}@keyframes groupsModalIn{0%{opacity:0;transform:translateY(8px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.groups-modal-header{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:flex-start;gap:20px;padding:22px 24px;display:flex}.groups-modal-eyebrow{color:#2563eb;letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px;font-size:11px;font-weight:750;display:block}.groups-modal-header h2{color:#111827;margin:0;font-size:21px;line-height:1.3}.groups-modal-header p{color:#64748b;margin:5px 0 0;font-size:13px;line-height:1.45}.groups-modal-close{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.groups-modal-close:hover{color:#0f172a;background:#f1f5f9}.groups-modal-form{padding:24px}.form-group{margin-bottom:19px}.form-group label{color:#334155;margin-bottom:7px;font-size:13px;font-weight:650;display:block}.form-group input[type=text]{box-sizing:border-box;color:#1e293b;background:#fff;border:1px solid #cbd5e1;border-radius:8px;outline:none;width:100%;height:43px;padding:0 12px;font-size:14px}.form-group input[type=text]::placeholder{color:#94a3b8}.form-group input[type=text]:focus{border-color:#60a5fa;box-shadow:0 0 0 3px #3b82f61a}.color-picker-row{align-items:center;gap:10px;display:flex}.color-picker-row input[type=color]{cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:8px;width:48px;height:42px;padding:3px}.color-picker-row span{color:#64748b;font-family:monospace;font-size:13px}.groups-modal-actions{border-top:1px solid #e5e7eb;justify-content:flex-end;gap:9px;margin-top:26px;padding-top:18px;display:flex}.modal-cancel-button,.modal-save-button{cursor:pointer;border-radius:8px;height:40px;padding:0 15px;font-size:13px;font-weight:650}.modal-cancel-button{color:#475569;background:#fff;border:1px solid #cbd5e1}.modal-cancel-button:hover{background:#f8fafc}.modal-save-button{color:#fff;background:#2563eb;border:1px solid #2563eb}.modal-save-button:hover{background:#1d4ed8}@media (width<=700px){.groups-page{padding:18px 14px}.groups-page-header{flex-direction:column;align-items:stretch;gap:16px;margin-bottom:20px}.groups-page-header h1{font-size:24px}.groups-page-header p{font-size:14px}.groups-create-button{width:100%}.groups-grid{grid-template-columns:1fr;gap:14px}.group-card-header,.group-athletes{padding:16px}.group-message-box{margin:0 16px 16px}.group-actions{padding:12px 16px}.groups-modal-overlay{align-items:flex-start;padding:12px;overflow-y:auto}.groups-modal{width:100%;margin:auto 0}.groups-modal-header,.groups-modal-form{padding:18px}}@media (width<=480px){.groups-page{padding:14px 10px}.groups-page-header h1{font-size:22px}.group-card-title h3{font-size:16px}.group-card-title p{font-size:13px}.group-athlete-count{font-size:12px}.group-message-content span{font-size:11px}.group-actions{gap:7px}.group-delete-button{min-width:48px}.group-delete-button span{display:none}.groups-modal-header h2{font-size:19px}}.create-group-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background-color:#0f172aa6;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.create-group-container{background-color:#fff;border-radius:14px;flex-direction:column;width:100%;max-width:480px;max-height:calc(100vh - 2rem);animation:.2s ease-out forwards modalAppear;display:flex;overflow:hidden;box-shadow:0 20px 25px -5px #00000026,0 10px 25px -5px #0000000a}@keyframes modalAppear{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.create-group-header{background-color:#fff;border-bottom:1px solid #e2e8f0;flex-shrink:0;justify-content:space-between;align-items:center;padding:1.1rem 1.25rem;display:flex}.create-group-title{color:#0f172a;align-items:center;gap:.6rem;display:flex}.create-group-title h2{color:#0f172a;margin:0;font-size:1.15rem;font-weight:600}.create-group-icon{color:#2563eb}.create-group-close{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:.35rem;transition:background-color .15s,color .15s;display:flex}.create-group-close:hover:not(:disabled){color:#0f172a;background-color:#f1f5f9}.create-group-close:disabled{opacity:.5;cursor:not-allowed}.create-group-form{flex-direction:column;gap:1.1rem;padding:1.25rem;display:flex;overflow-y:auto}.create-group-field{flex-direction:column;gap:.4rem;display:flex}.create-group-field label{color:#334155;font-size:.85rem;font-weight:600}.create-group-field input[type=text]{color:#1e293b;background-color:#fff;border:1px solid #cbd5e1;border-radius:8px;outline:none;padding:.65rem .85rem;font-size:.9rem;transition:border-color .15s,box-shadow .15s}.create-group-field input[type=text]::placeholder{color:#94a3b8}.create-group-field input[type=text]:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.create-group-field input[type=text]:disabled{cursor:not-allowed;background-color:#f8fafc}.members-search{align-items:center;width:100%;display:flex;position:relative}.members-search-icon{color:#94a3b8;pointer-events:none;position:absolute;left:.75rem}.members-search input{box-sizing:border-box;color:#1e293b;background-color:#fff;border:1px solid #cbd5e1;border-radius:8px;outline:none;width:100%;padding:.65rem 2.4rem .65rem 2.35rem;font-size:.85rem;transition:border-color .15s,box-shadow .15s}.members-search input::placeholder{color:#94a3b8}.members-search input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.members-search input:disabled{cursor:not-allowed;background-color:#f8fafc}.members-search-clear{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:26px;height:26px;padding:0;display:flex;position:absolute;top:50%;right:.55rem;transform:translateY(-50%)}.members-search-clear:hover{color:#0f172a;background-color:#f1f5f9}.members-select-list{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;gap:.35rem;max-height:220px;padding:.35rem;display:flex;overflow-y:auto}.member-select-item{cursor:pointer;-webkit-user-select:none;user-select:none;background-color:#fff;border:1px solid #0000;border-radius:6px;align-items:center;gap:.75rem;padding:.6rem .8rem;transition:background-color .15s,border-color .15s;display:flex}.member-select-item:hover{background-color:#f1f5f9}.member-select-item.selected{background-color:#eff6ff;border-color:#bfdbfe}.member-select-item input[type=checkbox]{accent-color:#2563eb;cursor:pointer;flex-shrink:0;width:16px;height:16px}.member-info{flex:1;justify-content:space-between;align-items:center;gap:.75rem;min-width:0;display:flex}.member-name{color:#1e293b;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:500;overflow:hidden}.member-role{color:#64748b;background-color:#f1f5f9;border-radius:4px;flex-shrink:0;padding:.15rem .5rem;font-size:.75rem}.members-no-results{color:#94a3b8;flex-direction:column;justify-content:center;align-items:center;gap:.45rem;min-height:100px;font-size:.82rem;display:flex}.members-selected-info{color:#64748b;margin-top:.1rem;font-size:.78rem}.members-selected-info strong{color:#2563eb}.create-group-actions{justify-content:flex-end;align-items:center;gap:.6rem;margin-top:.4rem;display:flex}.btn-cancel{color:#475569;cursor:pointer;background-color:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:.6rem 1.1rem;font-size:.85rem;font-weight:500;transition:background-color .15s,border-color .15s}.btn-cancel:hover:not(:disabled){background-color:#f8fafc;border-color:#94a3b8}.btn-cancel:disabled{opacity:.5;cursor:not-allowed}.btn-submit{color:#fff;cursor:pointer;background-color:#2563eb;border:none;border-radius:8px;padding:.6rem 1.1rem;font-size:.85rem;font-weight:600;transition:background-color .15s,opacity .15s}.btn-submit:hover:not(:disabled){background-color:#1d4ed8}.btn-submit:disabled{cursor:not-allowed;background-color:#94a3b8}@media (width<=520px){.create-group-overlay{padding:.75rem}.create-group-container{border-radius:12px;max-height:calc(100vh - 1.5rem)}.create-group-form{padding:1rem}.member-info{gap:.5rem}.member-role{font-size:.7rem}.create-group-actions{flex-direction:column-reverse;align-items:stretch}.btn-cancel,.btn-submit{width:100%}}.messages-page{box-sizing:border-box;background-color:#f8fafc;flex-direction:column;height:calc(100vh - 80px);max-height:calc(100vh - 80px);padding:1rem 1.5rem;display:flex}.page-header{width:100%;margin-bottom:1rem}.header-title-row{flex-flow:row;justify-content:space-between;align-items:center;gap:10px;width:100%;display:flex}.header-title-row h1{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;margin:0;font-size:1.5rem;font-weight:700;overflow:hidden}.btn-create-group{color:#fff;cursor:pointer;white-space:nowrap;background-color:#2563eb;border:none;border-radius:8px;flex:none;justify-content:center;align-items:center;gap:.5rem;margin-left:auto;padding:.55rem 1rem;font-size:.875rem;font-weight:600;transition:background-color .2s,transform .15s,box-shadow .2s;display:inline-flex}.btn-create-group:hover{background-color:#1d4ed8}.messages-container{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex:1;min-height:0;display:flex;overflow:hidden;box-shadow:0 4px 6px -1px #0000000d}.conversations-list{background:#fff;border-right:1px solid #e2e8f0;flex-direction:column;width:320px;min-width:300px;display:flex}.chat-tabs{background:#f1f5f9;border-radius:8px;gap:.25rem;margin:.75rem;padding:.25rem;display:flex}.tab-btn{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:.35rem;padding:.45rem .5rem;font-size:.8rem;font-weight:500;display:flex}.tab-btn.active{color:#0f172a;background:#fff;font-weight:600;box-shadow:0 1px 3px #0000001a}.filters{flex-direction:column;gap:.5rem;padding:0 .75rem .75rem;display:flex}.filters input,.filters select{box-sizing:border-box;background:#f8fafc;border:1px solid #cbd5e1;border-radius:6px;outline:none;width:100%;padding:.5rem .75rem;font-size:.85rem}.filters input:focus,.filters select:focus{background:#fff;border-color:#2563eb}.conversations-scroll{flex:1;min-height:0;padding:0 .5rem .5rem;overflow-y:auto}.section-title{text-transform:uppercase;color:#94a3b8;letter-spacing:.05em;padding:.5rem;font-size:.7rem;font-weight:700;display:block}.conversation-item{color:inherit;border-radius:8px;align-items:center;margin-bottom:.25rem;padding:.65rem .75rem;text-decoration:none;transition:background-color .15s,opacity .15s;display:flex;position:relative}.conversation-item:hover{background:#f1f5f9}.conversation-item.active{background:#eff6ff}.conversation-item.pinned{background:#fafaf9}.conversation-item.pinned.active{background:#eff6ff}.conversation-item.no-conversation-yet,.conversation-item.no-conversation-history{opacity:.52}.conversation-item.no-conversation-yet:hover,.conversation-item.no-conversation-history:hover{opacity:.85;background:#f8fafc}.conversation-item.no-conversation-yet .conversation-avatar,.conversation-item.no-conversation-history .conversation-avatar{filter:grayscale();background:#94a3b8}.conversation-item.no-conversation-yet .conversation-name-row strong,.conversation-item.no-conversation-history .conversation-name-row strong{color:#64748b;font-weight:500}.conversation-item.no-conversation-yet .role-badge,.conversation-item.no-conversation-history .role-badge{opacity:.75}.conversation-item.no-conversation-history.active{opacity:1}.conversation-avatar{color:#fff;background:#3b82f6;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;margin-right:.75rem;font-size:.95rem;font-weight:600;display:flex;position:relative}.group-avatar{background:#8b5cf6}.unread-dot-avatar{background:#ef4444;border:2px solid #fff;border-radius:50%;width:10px;height:10px;position:absolute;top:0;right:0}.conversation-info{flex:1;min-width:0}.conversation-name-row{justify-content:space-between;align-items:center;gap:.4rem;display:flex}.conversation-name-row strong{color:#1e293b;white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;overflow:hidden}.conversation-name-row strong.unread-text{color:#0f172a;font-weight:700}.unread-dot{background:#ef4444;border-radius:50%;flex-shrink:0;width:8px;height:8px}.role-badge{border-radius:4px;width:fit-content;margin-top:.15rem;padding:.1rem .4rem;font-size:.7rem;font-weight:500;display:inline-block}.role-badge.athlete{color:#0369a1;background:#e0f2fe}.role-badge.trainer{color:#15803d;background:#dcfce7}.role-badge.parent{color:#92400e;background:#fef3c7}.role-badge.admin{color:#991b1b;background:#fee2e2}.role-badge.user{color:#475569;background:#f1f5f9}.role-badge.group-badge{color:#6b21a8;background:#f3e8ff}.training-group-badge{color:#1d4ed8;background:#dbeafe}.btn-pin{color:#cbd5e1;cursor:pointer;opacity:0;background:0 0;border:none;border-radius:4px;margin-left:.25rem;padding:.35rem;transition:all .2s}.conversation-item:hover .btn-pin,.btn-pin.is-pinned{opacity:1}.btn-pin:hover{color:#0f172a;background:#e2e8f0}.btn-pin.is-pinned{color:#2563eb;transform:rotate(-45deg)}.no-results{text-align:center;color:#94a3b8;padding:1.5rem;font-size:.85rem}.group-item.training-group{border-left:3px solid #2563eb}.chat-area{background:#fff;flex-direction:column;flex:1;min-width:0;display:flex}.chat-header{background:#fff;border-bottom:1px solid #e2e8f0;align-items:center;gap:.75rem;padding:.85rem 1.25rem;display:flex}.chat-header-avatar{color:#fff;background:#2563eb;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-weight:600;display:flex}.group-avatar-header{background:#8b5cf6}.chat-header-info{min-width:0}.chat-header-info h3{color:#0f172a;margin:0;font-size:.95rem;font-weight:600}.chat-header-info span{color:#64748b;font-size:.75rem}.btn-training-settings,.btn-delete-group{cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:background-color .15s,color .15s,border-color .15s;display:flex}.btn-training-settings{color:#64748b;background:#fff;border:1px solid #e2e8f0;margin-left:auto}.btn-training-settings:hover{color:#2563eb;background:#eff6ff;border-color:#bfdbfe}.btn-delete-group{color:#ef4444;background:0 0;border:none;margin-left:auto}.chat-header .btn-training-settings+.btn-delete-group{margin-left:0}.btn-delete-group:hover{color:#dc2626;background:#fef2f2}.btn-back-mobile{color:#64748b;text-decoration:none;display:none}.messages-list{background:#f8fafc;flex-direction:column;flex:1;gap:.85rem;min-height:0;padding:1.25rem;display:flex;overflow-y:auto}.message{flex-direction:column;max-width:65%;display:flex;position:relative}.message.mine{align-self:flex-end}.message.theirs{align-self:flex-start}.message-sender-name{color:#64748b;margin-bottom:.2rem;margin-left:.2rem;font-size:.7rem;font-weight:600}.message-bubble{word-break:break-word;border-radius:12px;padding:.65rem .95rem;font-size:.875rem;line-height:1.4;position:relative;box-shadow:0 1px 2px #0000000d}.message.mine .message-bubble{color:#fff;background:#2563eb;border-bottom-right-radius:2px}.message.theirs .message-bubble{color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-bottom-left-radius:2px}.message-bubble p{margin:0}.message-time{text-align:right;opacity:.75;margin-top:.3rem;font-size:.65rem;display:block}.message-inline-image{border-radius:8px;max-width:100%;max-height:300px;margin-bottom:.4rem;display:block}.message-image-link{display:block}.message-attachment{color:inherit;background:#0000000f;border-radius:6px;align-items:center;gap:.5rem;margin-bottom:.3rem;padding:.5rem .65rem;font-size:.8rem;text-decoration:none;display:flex}.attachment-name{text-overflow:ellipsis;white-space:nowrap;max-width:300px;overflow:hidden}.message-composer{background:#fff;border-top:1px solid #e2e8f0;padding:.85rem 1.25rem}.message-input{align-items:center;gap:.5rem;display:flex}.message-input input[type=text]{border:1px solid #cbd5e1;border-radius:8px;outline:none;flex:1;padding:.65rem .9rem;font-size:.875rem}.message-input input[type=text]:focus{border-color:#2563eb}.btn-attach{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:.4rem;display:flex}.btn-attach:hover{color:#0f172a;background:#f1f5f9}.btn-send{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:8px;align-items:center;gap:.4rem;padding:.65rem 1rem;font-size:.85rem;font-weight:600;display:flex}.btn-send:hover:not(:disabled){background:#1d4ed8}.btn-send:disabled{cursor:not-allowed;background:#cbd5e1}.file-preview{background:#f1f5f9;border-radius:6px;align-items:center;gap:.5rem;width:fit-content;max-width:100%;margin-bottom:.5rem;padding:.4rem .65rem;font-size:.8rem;display:flex}.file-preview-name{text-overflow:ellipsis;white-space:nowrap;max-width:400px;overflow:hidden}.file-preview-remove{cursor:pointer;color:#ef4444;background:0 0;border:none;padding:0;display:flex}.error-message{color:#991b1b;background:#fef2f2;border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:.5rem;padding:.4rem .75rem;font-size:.8rem;display:flex}.error-close{cursor:pointer;color:#991b1b;background:0 0;border:none}.no-conversation{color:#94a3b8;text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:2rem;display:flex}.no-conversation-illustration{margin-bottom:.5rem;font-size:3rem}.training-settings-overlay{z-index:2000;box-sizing:border-box;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172a9e;justify-content:center;align-items:center;padding:24px;animation:.15s ease-out trainingSettingsFadeIn;display:flex;position:fixed;inset:0;overflow:hidden}@keyframes trainingSettingsFadeIn{0%{opacity:0}to{opacity:1}}.training-settings-modal{background:#fff;border:1px solid #e2e8f0e6;border-radius:16px;flex-direction:column;flex-shrink:1;width:min(760px,100%);min-height:0;max-height:calc(100vh - 48px);animation:.18s ease-out trainingSettingsModalIn;display:flex;overflow:hidden;box-shadow:0 24px 70px #0f172a40,0 4px 12px #0f172a14}@keyframes trainingSettingsModalIn{0%{opacity:0;transform:translateY(8px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.training-settings-header{background:#fff;border-bottom:1px solid #e5e7eb;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:18px 24px;display:flex}.training-settings-title{align-items:center;gap:12px;min-width:0;display:flex}.training-settings-title-icon{color:#2563eb;background:#eff6ff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.training-settings-title>div:last-child{min-width:0}.training-settings-title h2{color:#111827;margin:0;font-size:17px;font-weight:700;line-height:1.25}.training-settings-title p{color:#64748b;white-space:nowrap;text-overflow:ellipsis;margin:3px 0 0;font-size:12px;line-height:1.35;overflow:hidden}.training-settings-close{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:background-color .15s,color .15s;display:flex}.training-settings-close:hover{color:#0f172a;background:#f1f5f9}.training-settings-body{overscroll-behavior:contain;background:#fff;flex:auto;min-height:0;padding:24px;overflow:hidden auto}.training-settings-body::-webkit-scrollbar{width:7px}.training-members-list::-webkit-scrollbar{width:7px}.training-user-search-results::-webkit-scrollbar{width:7px}.training-settings-body::-webkit-scrollbar-track{background:0 0}.training-members-list::-webkit-scrollbar-track{background:0 0}.training-user-search-results::-webkit-scrollbar-track{background:0 0}.training-settings-body::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:20px}.training-members-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:20px}.training-user-search-results::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:20px}.training-settings-label{color:#475569;text-transform:uppercase;letter-spacing:.055em;margin-bottom:8px;font-size:11px;font-weight:700;line-height:1.3}.training-settings-description{color:#64748b;background:#f8fafc;border:1px solid #eef2f7;border-radius:9px;margin-bottom:14px;padding:10px 12px;font-size:12px;line-height:1.5}.training-settings-alert{border-radius:9px;align-items:flex-start;gap:9px;margin-bottom:14px;padding:10px 12px;font-size:12px;line-height:1.4;display:flex}.training-settings-alert>svg{flex-shrink:0;margin-top:1px}.training-settings-alert span{flex:1;min-width:0}.training-settings-alert button{width:24px;height:24px;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.training-settings-alert button:hover{background:#0000000f}.training-settings-alert.error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.training-settings-alert.success{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0}.training-mode-section{flex-direction:column;display:flex}.training-mode-options{flex-direction:column;gap:8px;display:flex}.training-mode-option{box-sizing:border-box;text-align:left;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:11px;align-items:center;gap:12px;width:100%;min-height:70px;padding:12px;transition:border-color .15s,background-color .15s,box-shadow .15s,transform .1s;display:flex}.training-mode-option:hover{background:#f8fafc;border-color:#cbd5e1}.training-mode-option:active{transform:translateY(1px)}.training-mode-option.selected{background:#eff6ff;border-color:#93c5fd;box-shadow:0 0 0 1px #2563eb14}.training-mode-icon{color:#64748b;background:#f1f5f9;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.training-mode-option.selected .training-mode-icon{color:#2563eb;background:#dbeafe}.training-mode-content{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.training-mode-content strong{color:#1e293b;font-size:13px;font-weight:700;line-height:1.3}.training-mode-content span{color:#64748b;font-size:11px;line-height:1.45}.training-radio{box-sizing:border-box;color:#fff;background:#fff;border:2px solid #cbd5e1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.training-mode-option.selected .training-radio{background:#2563eb;border-color:#2563eb}.training-settings-small-info{color:#94a3b8;margin-top:9px;font-size:11px;line-height:1.45}.normal-group-settings{flex-direction:column;display:flex}.training-members-section{margin-top:2px}.training-members-list{flex-direction:column;gap:7px;max-height:none;padding-right:2px;display:flex;overflow:visible}.training-members-empty{box-sizing:border-box;text-align:center;color:#94a3b8;background:#f8fafc;border:1px dashed #d7dce3;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:7px;min-height:90px;padding:16px;font-size:12px;display:flex}.training-members-empty svg{color:#cbd5e1}.training-member-row{box-sizing:border-box;background:#fff;border:1px solid #e5e7eb;border-radius:10px;align-items:center;gap:10px;min-height:54px;padding:8px 10px;transition:border-color .15s,background-color .15s;display:flex}.training-member-row:hover{background:#fafafa;border-color:#d8dde5}.training-member-avatar{color:#2563eb;background:#eff6ff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:13px;font-weight:700;display:flex}.training-member-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.training-member-info strong{text-overflow:ellipsis;white-space:nowrap;color:#1e293b;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.training-member-info .role-badge{margin-top:0}.training-member-owner{color:#64748b;background:#f1f5f9;border-radius:6px;flex-shrink:0;padding:4px 7px;font-size:10px;font-weight:600}.training-member-remove{color:#ef4444;cursor:pointer;background:0 0;border:none;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;transition:background-color .15s,color .15s;display:flex}.training-member-remove:hover{color:#dc2626;background:#fef2f2}.training-add-member-section{z-index:20;margin-top:20px;position:relative}.training-user-search-wrapper{width:100%;position:relative}.training-user-search-wrapper>svg{z-index:2;color:#94a3b8;pointer-events:none;width:17px;height:17px;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.training-user-search-wrapper input{box-sizing:border-box;color:#1e293b;background:#fff;border:1px solid #cbd5e1;border-radius:9px;outline:none;width:100%;height:42px;padding:0 40px 0 38px;font-size:13px;transition:border-color .15s,box-shadow .15s}.training-user-search-wrapper input::placeholder{color:#94a3b8}.training-user-search-wrapper input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.training-user-search-clear{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:30px;height:30px;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.training-user-search-clear:hover{color:#475569;background:#f1f5f9}.training-user-search-results{z-index:100;background:#fff;border:1px solid #e2e8f0;border-radius:10px;max-height:240px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 15px 35px #0f172a24,0 3px 8px #0f172a0f}.training-user-search-result{box-sizing:border-box;text-align:left;cursor:pointer;background:#fff;border:none;border-bottom:1px solid #f1f5f9;align-items:center;gap:10px;width:100%;min-height:52px;padding:8px 10px;transition:background-color .12s;display:flex}.training-user-search-result:last-child{border-bottom:none}.training-user-search-result:hover{background:#f8fafc}.training-user-search-result .training-member-avatar{width:32px;height:32px;font-size:11px}.training-user-search-result-info{flex-direction:column;flex:1;align-items:flex-start;gap:2px;min-width:0;display:flex}.training-user-search-result-info strong{text-overflow:ellipsis;white-space:nowrap;color:#1e293b;max-width:100%;font-size:12px;font-weight:600;overflow:hidden}.training-user-search-result>svg{color:#2563eb;flex-shrink:0}.training-user-search-empty{text-align:center;color:#94a3b8;padding:16px;font-size:12px}.training-delete-group-section{margin-top:22px}.training-delete-group-box{background:#fff7f7;border:1px solid #fecaca;border-radius:10px;justify-content:space-between;align-items:center;gap:14px;padding:13px;display:flex}.training-delete-group-info{align-items:flex-start;gap:10px;min-width:0;display:flex}.training-delete-group-info>svg{color:#dc2626;flex-shrink:0;margin-top:1px}.training-delete-group-info>div{flex-direction:column;gap:3px;display:flex}.training-delete-group-info strong{color:#991b1b;font-size:13px}.training-delete-group-info span{color:#a15c5c;font-size:11px;line-height:1.4}.training-delete-group-button{color:#dc2626;cursor:pointer;background:#fff;border:1px solid #fca5a5;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;gap:7px;height:36px;padding:0 12px;font-size:12px;font-weight:600;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex}.training-delete-group-button:hover:not(:disabled){color:#fff;background:#dc2626;border-color:#dc2626}.training-delete-group-button:disabled{opacity:.5;cursor:not-allowed}.training-settings-actions{box-sizing:border-box;background:#f8fafc;border-top:1px solid #e5e7eb;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;min-height:68px;padding:14px 24px;display:flex}.training-settings-actions-right{align-items:center;gap:8px;margin-left:auto;display:flex}.training-settings-cancel,.training-settings-save,.training-settings-delete{box-sizing:border-box;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:7px;height:38px;padding:0 14px;font-size:12px;font-weight:600;transition:background-color .15s,color .15s,border-color .15s,opacity .15s;display:inline-flex}.training-settings-cancel{color:#475569;background:#fff;border:1px solid #cbd5e1}.training-settings-cancel:hover:not(:disabled){background:#f1f5f9;border-color:#94a3b8}.training-settings-save{color:#fff;background:#2563eb;border:1px solid #2563eb}.training-settings-save:hover:not(:disabled){background:#1d4ed8;border-color:#1d4ed8}.training-settings-delete{color:#dc2626;background:#fff;border:1px solid #fecaca}.training-settings-delete:hover:not(:disabled){color:#fff;background:#dc2626;border-color:#dc2626}.training-settings-cancel:disabled,.training-settings-save:disabled,.training-settings-delete:disabled{opacity:.55;cursor:not-allowed}@media (width<=768px){.messages-page{height:calc(100vh - 60px);max-height:calc(100vh - 60px);padding:.5rem}.page-header{width:100%;margin-bottom:.75rem}.header-title-row{flex-flow:row;justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.header-title-row h1{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;font-size:1.25rem;overflow:hidden}.btn-create-group{white-space:nowrap;flex:none;margin-left:auto;padding:.5rem .75rem;font-size:.75rem}.messages-container{border-radius:10px;width:100%;height:100%;position:relative}.chat-area.mobile-hidden,.conversations-list.mobile-hidden{display:none!important}.conversations-list{border-right:none;width:100%;min-width:100%;max-width:100%}.chat-area{width:100%;min-width:0}.mobile-hidden{display:none!important}.btn-back-mobile{align-items:center;display:flex}.message{max-width:85%}.messages-list{padding:1rem}.message-composer{padding:.7rem}.btn-send span{display:none}.training-settings-overlay{justify-content:center;align-items:center;padding:12px;overflow:hidden}.training-settings-modal{width:100%;max-width:620px;max-height:calc(100vh - 24px);overflow:hidden}.training-settings-body{overscroll-behavior:contain;min-height:0;overflow:hidden auto}.training-add-member-section{z-index:30;position:relative}.training-user-search-results{z-index:100;width:100%;max-height:220px;margin-top:6px;position:relative;top:auto;left:auto;right:auto;overflow-y:auto}}@media (width<=600px){.messages-page{padding:.5rem}.page-header{width:100%;margin-bottom:.75rem}.header-title-row{gap:8px;width:100%;flex-flow:row!important;justify-content:space-between!important;align-items:center!important;display:flex!important}.header-title-row h1{white-space:nowrap;text-overflow:ellipsis;font-size:1.2rem;overflow:hidden;flex:auto!important;min-width:0!important;margin:0!important}.btn-create-group{white-space:nowrap;justify-content:center;align-items:center;min-width:max-content;padding:.5rem .7rem;font-size:.75rem;flex:none!important;width:auto!important;margin-left:auto!important;display:inline-flex!important}.training-settings-overlay{justify-content:center;align-items:center;padding:8px}.training-settings-modal{border-radius:14px;width:100%;max-width:100%;max-height:calc(100vh - 16px)}.training-settings-header{padding:14px 15px}.training-settings-title{gap:10px}.training-settings-title-icon{border-radius:9px;width:36px;height:36px}.training-settings-title h2{font-size:16px}.training-settings-title p{max-width:210px;font-size:11px}.training-settings-close{width:34px;height:34px}.training-settings-body{padding:15px;overflow:hidden auto}.training-settings-description{padding:9px 10px;font-size:11px;line-height:1.45}.training-mode-option{gap:9px;min-height:64px;padding:10px}.training-mode-icon{border-radius:8px;width:34px;height:34px}.training-mode-content strong{font-size:12px}.training-mode-content span{font-size:10.5px}.training-radio{width:20px;height:20px}.training-members-list{gap:6px;max-height:190px;overflow-y:auto}.training-member-row{gap:8px;min-height:52px;padding:7px 8px}.training-member-avatar{width:34px;height:34px;font-size:12px}.training-member-info strong{font-size:12px}.training-member-owner{padding:3px 6px;font-size:9px}.training-member-remove{width:30px;height:30px}.training-add-member-section{z-index:30;margin-top:16px}.training-user-search-wrapper input{height:44px;font-size:13px}.training-user-search-results{border-radius:9px;flex-direction:column;width:100%;max-height:210px;margin-top:6px;display:flex;position:relative;overflow-y:auto;box-shadow:0 8px 20px #0f172a1a}.training-user-search-result{min-height:50px;padding:7px 9px}.training-user-search-result .training-member-avatar{width:30px;height:30px}.training-user-search-result-info strong{font-size:11px}.training-user-search-empty{padding:14px}.training-settings-actions{flex-direction:row;align-items:center;gap:8px;min-height:auto;padding:11px 15px}.training-settings-actions-right{flex:1;gap:7px;width:auto;margin-left:auto;display:flex}.training-settings-cancel,.training-settings-save,.training-settings-delete{height:38px;padding:0 11px;font-size:11px}.training-settings-cancel,.training-settings-save{flex:1}.training-settings-delete{flex-shrink:0;width:auto}.training-delete-group-box{flex-direction:column;align-items:stretch;gap:10px}.training-delete-group-button{width:100%}}@media (width<=480px){.messages-page{padding:.35rem}.header-title-row{gap:6px;flex-flow:row!important;justify-content:space-between!important;align-items:center!important;display:flex!important}.header-title-row h1{font-size:1.05rem;flex:auto!important;min-width:0!important}.btn-create-group{min-width:max-content;padding:.45rem .6rem;font-size:.7rem;flex:none!important;width:auto!important;margin-left:auto!important}.training-settings-overlay{justify-content:center;align-items:center;padding:8px}.training-settings-modal{border-radius:14px;width:100%;max-width:100%;max-height:calc(100vh - 16px)}.training-settings-header{padding:12px 13px}.training-settings-body{padding:13px;overflow:hidden auto}.training-settings-title-icon{width:34px;height:34px}.training-settings-title h2{font-size:15px}.training-settings-title p{max-width:175px;font-size:10px}.training-mode-option{min-height:61px;padding:9px}.training-mode-icon{width:32px;height:32px}.training-mode-content strong{font-size:11.5px}.training-mode-content span{font-size:10px}.training-members-list{max-height:170px;overflow-y:auto}.training-settings-actions{padding:10px 13px}.training-settings-actions-right{gap:6px}.training-settings-cancel,.training-settings-save,.training-settings-delete{height:36px;padding:0 9px;font-size:10.5px}.training-user-search-results{max-height:190px}.training-user-search-result{min-height:48px}}.groups-top-actions{text-align:center;width:auto;padding:10px 16px}.btn-create-group{background:var(--primary-color,#2563eb);color:#fff;cursor:pointer;border:none;border-radius:7px;justify-content:center;align-items:center;gap:9px;padding:8px 13px;font-size:13px;font-weight:600;line-height:1;transition:background .2s,transform .15s;display:inline-flex;width:100%!important}.btn-create-group:hover{background:var(--primary-color-hover,#1d4ed8)}.btn-create-group:active{transform:scale(.97)}.btn-create-group svg{flex-shrink:0}.message-admin-menu{z-index:50;position:absolute;top:5px;right:5px}.message-admin-menu-trigger{color:#64748b;cursor:pointer;opacity:0;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#ffffffdb;border:none;border-radius:7px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;transition:opacity .15s,background-color .15s,color .15s,transform .15s,box-shadow .15s;display:flex;box-shadow:0 1px 3px #0f172a14}.message:hover .message-admin-menu-trigger,.message-admin-menu-trigger:focus{opacity:1}.message-admin-menu-trigger:hover{color:#0f172a;background:#fff;transform:scale(1.04);box-shadow:0 3px 8px #0f172a24}.message.mine .message-admin-menu-trigger{color:#ffffffe6;box-shadow:none;background:#ffffff2b}.message.mine .message-admin-menu-trigger:hover{color:#fff;background:#ffffff4d}.message-admin-dropdown{background:#fff;border:1px solid #e2e8f0;border-radius:9px;flex-direction:column;width:145px;padding:5px;display:none;position:absolute;top:33px;right:0;box-shadow:0 12px 30px #0f172a26,0 3px 8px #0f172a12}.message-admin-dropdown.open{display:flex}.message-admin-dropdown button{color:#334155;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:9px;width:100%;padding:8px 9px;font-family:inherit;font-size:12px;font-weight:500;transition:background-color .15s,color .15s;display:flex}.message-admin-dropdown button:hover{color:#0f172a;background:#f1f5f9}.message-admin-dropdown button svg{color:#64748b;flex-shrink:0;transition:color .15s}.message-admin-dropdown button:hover svg{color:#2563eb}.message-admin-dropdown button.delete-action,.message-admin-dropdown button.delete-action svg{color:#dc2626}.message-admin-dropdown button.delete-action:hover{color:#b91c1c;background:#fef2f2}.message-admin-dropdown button.delete-action:hover svg{color:#b91c1c}.message-edit{flex-direction:column;gap:8px;min-width:220px;display:flex}.message-edit input{box-sizing:border-box;color:#1e293b;background:#fff;border:1px solid #cbd5e1;border-radius:7px;outline:none;width:100%;padding:8px 10px;font-family:inherit;font-size:.875rem;line-height:1.4;transition:border-color .15s,box-shadow .15s}.message-edit input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.message-edit-actions{justify-content:flex-end;align-items:center;gap:5px;display:flex}.message-edit-actions button{cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;transition:background-color .15s,color .15s,transform .1s;display:flex}.message-edit-actions button:hover{transform:translateY(-1px)}.message-edit-actions button:active{transform:scale(.94)}.message-edit-actions button:first-child{color:#15803d;background:#dcfce7}.message-edit-actions button:first-child:hover{color:#166534;background:#bbf7d0}.message-edit-actions button:last-child{color:#dc2626;background:#fef2f2}.message-edit-actions button:last-child:hover{color:#b91c1c;background:#fee2e2}@media (width<=600px){.message-admin-menu{top:4px;right:4px}.message-admin-menu-trigger{opacity:1;width:27px;height:27px}.message-admin-dropdown{width:135px;top:32px}.message-admin-dropdown button{padding:8px;font-size:11px}.message-edit{min-width:180px;max-width:100%}.message-edit input{padding:7px 9px;font-size:.8rem}.message-edit-actions button{width:27px;height:27px}}@media (hover:none) and (pointer:coarse){.message-admin-menu-trigger{opacity:1}}.payments-page{flex-direction:column;gap:16px;padding:24px;display:flex}.page-header-excel h1{font-size:22px;font-weight:700}.page-subtitle{color:var(--text-muted);margin-top:2px;font-size:13px}.excel-controls-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.payments-filters{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.excel-search-bar{width:300px}.excel-search-input{box-sizing:border-box;border:1px solid var(--border);background-color:var(--card-bg);width:100%;color:var(--text-main);border-radius:8px;outline:none;padding:9px 12px;font-size:14px}.excel-search-input:focus{border-color:var(--primary,#2563eb)}.group-filter-wrapper{position:relative}.group-filter-select{border:1px solid var(--border);background-color:var(--card-bg);min-width:180px;height:40px;color:var(--text-main);cursor:pointer;border-radius:8px;outline:none;padding:0 34px 0 12px;font-family:inherit;font-size:14px}.group-filter-select:focus{border-color:var(--primary,#2563eb)}.year-selector-container{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;flex-shrink:0;align-items:center;height:40px;display:flex;overflow:hidden}.year-nav-btn{color:var(--text-main);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;height:100%;padding:0 12px;display:flex}.year-nav-btn:hover{background:#7f7f7f14}.native-select-wrapper{border-left:1px solid var(--border);border-right:1px solid var(--border);height:100%;position:relative}.year-native-select{appearance:none;color:var(--text-main);cursor:pointer;text-align:center;background:0 0;border:none;outline:none;height:100%;padding:0 20px;font-family:inherit;font-size:14px;font-weight:600}.excel-table-container{border:1px solid var(--border);background:var(--card-bg);-webkit-overflow-scrolling:touch;border-radius:8px;width:100%;position:relative;overflow-x:auto}.excel-table{border-collapse:separate;border-spacing:0;width:100%;font-size:14px}.excel-table th,.excel-table td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:10px 8px}.excel-table .sticky-col{z-index:20;width:180px;min-width:180px;position:sticky;left:0;box-shadow:4px 0 8px #0000000f;background-color:#f5f6f8!important}.excel-table thead .sticky-col{z-index:30;background-color:var(--card-bg)}.excel-table .sticky-col:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000000f,#0000);width:6px;position:absolute;top:0;bottom:0;right:-6px}.athlete-name-cell{font-weight:600}.athlete-name-truncate{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.group-col,.group-cell-txt{color:var(--text-muted);width:110px;min-width:110px;font-size:13px}.month-col,.excel-cell{text-align:center}.month-col{white-space:nowrap;width:82px;min-width:82px;font-weight:600}.month-full{display:inline}.month-short{display:none}.excel-cell{cursor:pointer;width:82px;min-width:82px;font-weight:700;transition:filter .12s}.excel-cell:hover{filter:brightness(.96)}.cell-content{justify-content:center;align-items:center;height:22px;display:flex}.cell-paid{color:#16a34a;background-color:#22c55e1f!important}.cell-unpaid{color:#dc2626;background-color:#ef44440a!important}.cell-custom{color:#9333ea;font-size:11px;background-color:#a855f71f!important}.cell-amount-tooltip{display:none}.empty-table-cell{text-align:center;color:var(--text-muted);font-size:14px;padding:30px 20px!important}.excel-legend{color:var(--text-muted);gap:16px;font-size:13px;display:flex}.legend-item{align-items:center;gap:6px;display:flex}.legend-dot{border-radius:4px;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;font-weight:700;display:flex}.cell-bg-paid{color:#16a34a;background:#22c55e26}.cell-bg-unpaid{color:#dc2626;background:#ef44441a}.cell-bg-custom{color:#9333ea;background:#a855f726}@media (width<=650px){.payments-page{gap:12px;padding:12px}.page-header-excel h1{font-size:19px}.excel-controls-row{flex-direction:column;align-items:stretch}.payments-filters{flex-direction:column;align-items:stretch;gap:8px;width:100%}.excel-search-bar{width:100%;max-width:100%}.group-filter-wrapper,.group-filter-select{width:100%}.year-selector-container{justify-content:space-between;width:100%}.native-select-wrapper{flex-grow:1}.year-native-select{width:100%}.group-col,.group-cell-txt{display:none!important}.excel-table .sticky-col{z-index:20;width:105px;min-width:105px;max-width:115px;padding:10px 6px;font-size:12px;box-shadow:4px 0 8px #00000014;background-color:#f5f6f8!important}.excel-table thead .sticky-col{z-index:30;background-color:#f5f6f8!important}.month-full{display:none}.month-short{display:inline}.month-col,.excel-cell{width:40px;min-width:40px;padding:10px 4px;font-size:12px}.cell-content{font-size:12px}.excel-legend{flex-wrap:wrap;gap:10px;font-size:12px}}.trainings-page{background:var(--bg-main);box-sizing:border-box;flex-direction:column;flex:1;gap:20px;width:100%;min-height:100%;padding:24px;display:flex}.trainings-page .page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.trainings-page h1{color:var(--text-primary);margin:0;font-size:26px;font-weight:700}.page-subtitle{color:var(--text-muted);margin:5px 0 0;font-size:14px}.header-actions{align-items:center;gap:8px;display:flex}.info-banner{color:#1e40af;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:#eff6ff;border:1px solid #bfdbfe;align-items:flex-start;gap:12px;padding:14px 18px;font-size:14px;line-height:1.5;display:flex}.view-toggle{border-radius:var(--radius-lg);border:1px solid var(--border-light);background:#f1f5f9;align-self:flex-start;gap:3px;padding:4px;display:flex}.toggle-btn{color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-md);background:0 0;border:none;justify-content:center;align-items:center;gap:7px;padding:9px 18px;font-size:14px;font-weight:600;transition:all .2s;display:inline-flex}.toggle-btn.active{background:var(--bg-card);color:var(--primary);box-shadow:var(--shadow-sm)}.training-filters{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;gap:16px;padding:16px;display:flex}.filter-tabs{flex-wrap:wrap;gap:7px;display:flex}.filter-tab{border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:7px;padding:8px 13px;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.filter-tab:hover{color:var(--text-primary);background:#f8fafc}.filter-tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}.filter-tab span{min-width:20px;height:20px;color:var(--text-secondary);background:#f1f5f9;border-radius:10px;justify-content:center;align-items:center;padding:0 5px;font-size:11px;display:inline-flex}.filter-tab.active span{color:#fff;background:#fff3}.filters-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.search-box{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);min-width:220px;max-width:420px;height:40px;color:var(--text-muted);box-sizing:border-box;flex:1;align-items:center;gap:8px;padding:0 12px;display:flex}.search-box:focus-within{border-color:var(--primary)}.search-box input{width:100%;height:100%;color:var(--text-primary);background:0 0;border:none;outline:none;font-size:14px}.filter-box select{min-width:200px;height:40px;color:var(--text-primary);background-color:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;outline:none;padding:0 12px;font-size:14px}.filter-box select:focus{border-color:var(--primary)}.results-info{color:var(--text-muted);margin-top:-8px;font-size:13px}.results-info strong{color:var(--text-primary)}.table-container{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);width:100%;overflow-x:auto}.table{width:100%;min-width:1050px}.table-header,.table-row{grid-template-columns:1.5fr 1.2fr .9fr 2fr 1.5fr 1.8fr;align-items:center;gap:16px;padding:14px 20px;display:grid}.table-header{border-bottom:2px solid var(--border);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;background:#f8fafc;font-size:12px;font-weight:600}.table-row{border-bottom:1px solid var(--border-light);color:var(--text-primary);box-sizing:border-box;min-height:62px;font-size:14px;transition:background-color .15s}.table-row:last-child{border-bottom:none}.table-row:hover{background-color:#f8fafc}.cancelled-row{background-color:#fff7f7!important}.cancelled-row:hover{background-color:#fef2f2!important}.date-main{font-weight:600}.today-label{color:var(--primary);margin-top:3px;font-size:11px;font-weight:700;display:inline-block}.time-value{font-variant-numeric:tabular-nums;font-weight:600}.location-value{color:var(--text-secondary);font-size:13px}.actions,.status-cell{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.exception-status{color:#b45309;white-space:nowrap;background:#fef3c7;border:1px solid #fde68a;border-radius:20px;justify-content:center;align-items:center;gap:5px;padding:5px 10px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.status-cell .exception-status{flex-shrink:0}.empty-state{text-align:center;min-height:180px;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:40px 20px;font-size:14px;display:flex}.empty-state strong{color:var(--text-primary);font-size:16px}.schedules-list{flex-direction:column;gap:16px;width:100%;display:flex}.schedule-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);box-sizing:border-box;width:100%;transition:box-shadow .2s;overflow:hidden}.schedule-card:hover{box-shadow:var(--shadow-md)}.schedule-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:20px;display:flex}.schedule-info{flex-direction:column;gap:8px;min-width:0;display:flex}.schedule-day{color:var(--text-primary);font-size:18px;font-weight:700}.schedule-meta{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:14px;font-size:13px;display:flex}.schedule-meta span{align-items:center;gap:6px;display:inline-flex}.schedule-validity{color:var(--text-muted)}.schedule-actions{align-items:center;gap:7px;display:flex}.schedule-exceptions{border-top:1px solid var(--border);background:#f8fafc;padding:20px;animation:.2s ease-out slideDown}.schedule-exceptions h4{color:var(--text-secondary);margin:0 0 12px;font-size:14px;font-weight:600}.no-exceptions{color:var(--text-muted);margin:0;font-size:13px}.exception-row{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;padding:10px 14px;font-size:13px;display:flex}.exception-row:last-child{margin-bottom:0}.exception-content{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.exception-reason{color:var(--text-muted)}.exception-badge{text-transform:uppercase;white-space:nowrap;border-radius:5px;justify-content:center;align-items:center;padding:4px 8px;font-size:10px;font-weight:700;display:inline-flex}.exception-badge.cancelled{color:#b91c1c;background:#fee2e2;border:1px solid #fecaca}.exception-badge.changed{color:#d97706;background:#fef3c7;border:1px solid #fde68a}.group-badge{color:#334155;white-space:nowrap;background:#f1f5f9;border-radius:6px;align-items:center;padding:5px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge-active,.badge-past,.badge-cancelled{white-space:nowrap;border-radius:20px;align-items:center;gap:5px;padding:5px 10px;font-size:11px;font-weight:600;display:inline-flex}.badge-active{color:#15803d;background:#dcfce7}.badge-past{color:#64748b;background:#f1f5f9}.badge-cancelled{color:#b91c1c;background:#fee2e2}.plan-indicator{color:#2563eb;white-space:nowrap;background:#eff6ff;border:1px solid #bfdbfe;border-radius:5px;align-items:center;gap:4px;padding:4px 7px;font-size:10px;font-weight:700;display:inline-flex}.btn{border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;box-sizing:border-box;border:1px solid #0000;justify-content:center;align-items:center;gap:7px;font-weight:600;text-decoration:none;transition:background-color .15s,transform .1s,border-color .15s;display:inline-flex}.btn-small{padding:8px 13px;font-size:13px}.btn-secondary{color:#334155;border-color:var(--border);background:#f1f5f9}.btn-secondary:hover{background:#e2e8f0}.btn-success:hover{background:#16a34a}.btn-icon,.btn-icon-danger{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;color:var(--text-secondary);justify-content:center;align-items:center;padding:8px;transition:all .15s;display:inline-flex}.btn-icon:hover{color:var(--text-primary);background-color:#f1f5f9}.btn-icon-danger:hover{color:var(--danger);background-color:#fef2f2;border-color:#fca5a5}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:999;background-color:#0f172a66;justify-content:center;align-items:center;padding:16px;animation:.15s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);border-radius:var(--radius-lg);width:100%;max-width:540px;max-height:calc(100vh - 32px);animation:.15s ease-out scaleUp;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 25px -5px #0000000a}.training-edit-modal{max-width:680px}.modal-header{border-bottom:1px solid var(--border);background-color:#f8fafc;justify-content:space-between;align-items:flex-start;padding:18px 24px;display:flex}.modal-header h2{color:var(--text-primary);margin:0;font-size:18px;font-weight:700}.modal-header p{color:var(--text-muted);margin:4px 0 0;font-size:13px}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;padding:5px;transition:background-color .2s;display:flex}.modal-close:hover{color:var(--text-primary);background-color:#e2e8f0}.modal-form{flex-direction:column;gap:16px;padding:24px;display:flex}.form-section{flex-direction:column;gap:16px;display:flex}.section-title{border-bottom:1px solid var(--border-light);color:var(--primary);align-items:center;gap:8px;padding-bottom:10px;font-size:14px;font-weight:700;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-group label{color:var(--text-secondary);align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.form-group label span{color:var(--text-muted);font-weight:400}.form-group small{color:var(--text-muted);font-size:11px}.form-group input[type=text],.form-group input[type=date],.form-group input[type=time],.form-group input[type=file],.form-group select{border:1px solid var(--border);border-radius:var(--radius-md);background-color:var(--bg-card);color:var(--text-primary);box-sizing:border-box;outline:none;width:100%;padding:10px 12px;font-size:14px;transition:border-color .2s}.form-group input:focus,.form-group select:focus{border-color:var(--primary)}.form-group textarea{resize:vertical;box-sizing:border-box;width:100%;min-height:170px;color:var(--text-primary);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);outline:none;padding:12px;font-family:inherit;font-size:14px;line-height:1.55;transition:border-color .2s}.form-group textarea:focus{border-color:var(--primary)}.training-plan-section{border:1px solid var(--border);border-radius:var(--radius-md);background:#f8fafc;flex-direction:column;gap:16px;padding:18px;display:flex}.training-plan-heading{justify-content:space-between;align-items:flex-start;display:flex}.training-plan-title{align-items:flex-start;gap:10px;display:flex}.plan-icon{color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.training-plan-heading h3{color:var(--text-primary);margin:0;font-size:15px;font-weight:700}.training-plan-heading p{color:var(--text-muted);margin:4px 0 0;font-size:12px;line-height:1.4}.existing-plan-file{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;display:flex}.existing-file-info{align-items:center;gap:10px;min-width:0;display:flex}.file-icon{width:34px;height:34px;color:var(--text-secondary);background:#f1f5f9;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.existing-file-info>div:last-child{flex-direction:column;gap:3px;min-width:0;display:flex}.existing-plan-file strong{color:var(--text-muted);text-transform:uppercase;font-size:11px}.existing-plan-file a{color:var(--primary);overflow-wrap:anywhere;font-size:13px;font-weight:600;text-decoration:none}.existing-plan-file a:hover{text-decoration:underline}.remove-file-btn{color:#b91c1c;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #fecaca;align-items:center;gap:5px;padding:7px 9px;font-size:12px;font-weight:600;display:inline-flex}.remove-file-btn:hover{background:#fef2f2}.file-removal-notice{color:#b91c1c;border-radius:var(--radius-md);background:#fef2f2;border:1px solid #fecaca;align-items:center;gap:8px;padding:10px 12px;font-size:12px;display:flex}.file-removal-notice span{flex:1}.file-removal-notice button{color:#991b1b;cursor:pointer;background:0 0;border:none;font-size:12px;font-weight:700}.file-removal-notice button:hover{text-decoration:underline}.file-input-wrapper{position:relative}.file-input-wrapper input[type=file]{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.file-input-label{box-sizing:border-box;background:var(--bg-card);width:100%;min-height:42px;color:var(--text-secondary);border:1px dashed var(--border);border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:9px;padding:10px 12px;font-size:13px;font-weight:600;transition:background-color .15s,border-color .15s;display:flex}.file-input-label:hover{border-color:var(--primary);color:var(--primary);background:#f8fafc}.file-input-label span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.modal-info{color:#1e40af;border-radius:var(--radius-md);background:#eff6ff;border:1px solid #bfdbfe;align-items:flex-start;gap:8px;padding:10px 12px;font-size:12px;line-height:1.5;display:flex}.modal-actions{border-top:1px solid var(--border-light);justify-content:flex-end;gap:12px;margin-top:4px;padding-top:16px;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.trainings-page{gap:14px;width:100%;min-width:0;padding:12px;overflow-x:hidden}.trainings-page .page-header{flex-direction:column;align-items:stretch;gap:12px}.trainings-page h1{font-size:22px;line-height:1.25}.page-subtitle{font-size:13px;line-height:1.4}.header-actions{flex-direction:column;width:100%}.header-actions .btn{width:100%}.info-banner{gap:9px;padding:12px 13px;font-size:13px}.view-toggle{box-sizing:border-box;width:100%}.toggle-btn{flex:1;gap:5px;min-width:0;padding:9px 8px;font-size:13px}.training-filters{gap:12px;padding:12px}.filter-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.filter-tab{justify-content:center;gap:5px;min-width:0;padding:8px 7px;font-size:12px}.filter-tab span{min-width:18px;height:18px;padding:0 4px;font-size:10px}.filters-row{flex-direction:column;align-items:stretch;gap:9px}.search-box{width:100%;min-width:0;max-width:none;height:42px}.filter-box{width:100%}.filter-box select{width:100%;min-width:0;height:42px}.filters-row .btn{width:100%}.results-info{margin-top:-3px;font-size:12px}.table-container{border-radius:var(--radius-lg);width:100%;overflow:visible}.table{width:100%;min-width:0}.table-header{display:none}.table-row{border-bottom:1px solid var(--border);flex-direction:column;align-items:stretch;gap:10px;min-height:0;padding:14px;display:flex}.table-row:last-child{border-bottom:none}.table-row:hover{background-color:#0000}.table-row>div{width:100%;min-width:0}.date-main{font-size:15px}.today-label{margin-top:0;margin-left:5px}.time-value{font-size:15px}.location-value{font-size:13px}.status-cell{gap:6px;width:100%}.exception-status{padding:5px 9px;font-size:10px}.actions{gap:7px;width:100%}.actions .btn,.actions .btn-icon,.actions .btn-icon-danger{flex:1;min-height:38px}.group-badge,.badge-active,.badge-past,.badge-cancelled,.plan-indicator,.exception-status{box-sizing:border-box;max-width:100%}.empty-state{min-height:150px;padding:30px 15px}.schedules-list{gap:12px}.schedule-card{width:100%}.schedule-header{flex-direction:column;align-items:stretch;gap:12px;padding:14px}.schedule-day{font-size:17px}.schedule-meta{flex-direction:column;align-items:flex-start;gap:7px}.schedule-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;width:100%;display:grid}.schedule-actions .btn,.schedule-actions .btn-icon,.schedule-actions .btn-icon-danger{width:100%;min-height:38px}.schedule-exceptions{padding:14px}.exception-row{flex-direction:column;align-items:stretch;gap:9px;padding:10px 12px}.exception-content{align-items:flex-start}.exception-badge{padding:4px 7px;font-size:10px}.modal-overlay{align-items:center;padding:8px}.modal{border-radius:var(--radius-lg);width:100%;max-width:none;max-height:calc(100vh - 16px)}.training-edit-modal{max-width:none}.modal-header{gap:10px;padding:14px 16px}.modal-header h2{font-size:17px;line-height:1.3}.modal-header p{font-size:12px}.modal-form{gap:14px;padding:16px}.form-row{grid-template-columns:1fr;gap:14px}.form-section{gap:14px}.form-group{gap:5px}.form-group input[type=text],.form-group input[type=date],.form-group input[type=time],.form-group input[type=file],.form-group select{min-height:42px;padding:10px 11px;font-size:14px}.form-group textarea{min-height:140px;font-size:14px}.training-plan-section{gap:13px;padding:13px}.training-plan-heading{gap:10px}.training-plan-title{gap:8px;min-width:0}.plan-icon{width:32px;height:32px}.training-plan-heading h3{font-size:14px}.training-plan-heading p{font-size:11px}.existing-plan-file{flex-direction:column;align-items:stretch;gap:10px;padding:11px 12px}.existing-file-info,.existing-file-info>div:last-child{min-width:0}.existing-plan-file a{overflow-wrap:anywhere;word-break:break-word}.remove-file-btn{justify-content:center;width:100%}.file-removal-notice{flex-wrap:wrap;align-items:flex-start;padding:9px 10px}.file-removal-notice span{flex:calc(100% - 30px);min-width:0}.file-input-label{min-height:42px;padding:10px 11px}.modal-info{padding:9px 10px;font-size:11px}.modal-actions{flex-direction:column-reverse;gap:8px}.modal-actions .btn{width:100%;min-height:42px}}@media (width<=480px){.trainings-page{gap:12px;padding:9px}.trainings-page h1{font-size:20px}.filter-tabs{grid-template-columns:1fr}.filter-tab{padding:9px}.training-filters{padding:10px}.table-row,.schedule-header{padding:12px}.schedule-actions{grid-template-columns:1fr}.schedule-exceptions,.training-plan-section{padding:12px}.modal-overlay{padding:5px}.modal{max-height:calc(100vh - 10px)}.modal-header{padding:13px 14px}.modal-form{padding:14px}.section-title{font-size:13px}.exception-status{padding:5px 8px;font-size:10px}}@media (width<=768px) and (orientation:landscape){.modal{max-height:95vh}.modal-form{padding:14px}.form-row{grid-template-columns:1fr 1fr;gap:12px}}.exception-indicator{color:#ca8a04;white-space:nowrap;background:#eab3081f;border:1px solid #eab30840;border-radius:6px;align-items:center;gap:5px;padding:4px 8px;font-size:12px;font-weight:600;display:inline-flex}.settings-page{padding:30px}@media (width<=768px){.settings-page{padding:15px}}.settings-container{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.settings-tabs{border-bottom:1px solid var(--border);background:var(--bg-main);white-space:nowrap;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:thin;cursor:grab;align-items:stretch;display:flex;overflow:auto hidden}.settings-tabs:active{cursor:grabbing}.settings-tabs::-webkit-scrollbar{height:5px}.settings-tabs::-webkit-scrollbar-track{background:0 0}.settings-tabs::-webkit-scrollbar-thumb{background:var(--border);border-radius:10px}.settings-tabs::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.tab{white-space:nowrap;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;flex:none;justify-content:center;align-items:center;gap:7px;padding:15px 25px;font-size:14px;line-height:1;transition:color .2s,background .2s,border-color .2s;display:inline-flex}.tab:hover{color:var(--text-primary);background:var(--bg-card)}.tab.active{color:var(--primary);border-bottom-color:var(--primary);background:var(--bg-card)}@media (width<=900px){.tab{padding:14px 18px}}@media (width<=600px){.settings-tabs{scrollbar-width:none}.settings-tabs::-webkit-scrollbar{display:none}.tab{padding:14px 16px;font-size:13px}}.settings-content{padding:30px}@media (width<=768px){.settings-content{padding:20px 15px}}.settings-section h2{margin:0 0 25px;font-size:20px}.settings-section h3{margin:0}.settings-section h4{margin:0 0 12px}.subsection-title{font-size:17px;margin-bottom:20px!important}.settings-form{max-width:650px}.settings-form .form-group{margin-bottom:20px}.settings-form label{color:var(--text-secondary);margin-bottom:8px;font-weight:500;display:block}.settings-form input,.settings-form select{box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);width:100%;color:var(--text-primary);outline:none;padding:12px 14px;font-size:14px;transition:all .2s}.settings-form input:focus,.settings-form select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.settings-form input:disabled{background:var(--bg-main);color:var(--text-muted)}.settings-form small{color:var(--text-muted);margin-top:6px;font-size:12px;display:block}.error-text{margin-top:5px;display:block;color:var(--danger,#ef4444)!important}.info-box{border:1px solid var(--primary);border-radius:var(--radius-sm);background:var(--primary-light);color:var(--text-primary);align-items:flex-start;gap:8px;margin-bottom:25px;padding:15px;font-size:14px;line-height:1.4;display:flex}.info-box svg{flex-shrink:0;margin-top:2px}.btn{border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:11px 16px;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex}.btn-primary:hover{opacity:.9}.btn-success{color:#fff;background:#16a34a}.btn-secondary{background:var(--bg-main);border-color:var(--border);color:var(--text-primary)}.btn-secondary:hover{border-color:var(--primary);color:var(--primary)}.icon-btn{border:1px solid var(--border,#e5e7eb);background:var(--bg-card,#fff);width:42px;min-width:42px;height:42px;color:var(--text-secondary,#6b7280);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.icon-btn:hover{background:var(--bg-main,#f5f7fa);color:var(--text-primary,#1a1a2e)}.checkbox-group label{cursor:pointer;align-items:center;gap:10px;display:flex!important}.checkbox-group input[type=checkbox]{cursor:pointer;flex-shrink:0;height:16px;margin:0;width:16px!important;padding:0!important}.password-change-checkbox{margin-top:-4px}.password-change-checkbox small{margin-top:6px;margin-left:26px;display:block}.user-card{background:var(--bg-main);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.user-card-header{cursor:pointer;width:100%;color:var(--text-primary);text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:15px;padding:14px 16px;display:flex}.user-main{min-width:0}.user-name{font-size:14px;font-weight:600}.user-email{color:var(--text-muted);text-overflow:ellipsis;margin-top:3px;font-size:12px;overflow:hidden}.user-meta{flex-shrink:0;align-items:center;gap:8px;display:flex}.role-badge,.admin-badge{white-space:nowrap;border-radius:20px;padding:4px 10px;font-size:11px;font-weight:600}.role-badge{background:var(--bg-card);color:var(--text-secondary)}.admin-badge{background:var(--danger-light,#fee2e2);color:var(--danger,#ef4444)}.user-card-options{border-top:1px solid var(--border);max-width:500px;padding:20px 16px 16px}.password-generator{align-items:stretch;gap:8px;display:flex}.password-generator input{flex:1;min-width:0}.password-generator .btn{flex-shrink:0}@media (width<=600px){.password-generator{flex-wrap:wrap}.password-generator input{flex-basis:100%;width:100%}.password-generator .btn{flex:1}}.parent-child-section{border:1px solid var(--border,#e5e7eb);background:#fafbfc;border-radius:12px;margin-top:24px;padding:20px}.parent-child-section h3{margin-top:0;margin-bottom:6px;font-size:16px}.parent-child-section>small{color:var(--text-secondary,#6b7280);margin-bottom:14px;line-height:1.5;display:block}.new-children-section{background:#fff;margin-bottom:25px}.parents-page-header{justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px;display:flex}.parents-page-header h2{margin:0 0 6px}.parents-page-header p{color:#6b7280;margin:0}.section-heading-row{justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px;display:flex}.section-heading-row>div:first-child{flex:1;min-width:0}.section-heading-row h2,.section-heading-row h3{margin-top:0}.section-heading-row small{color:var(--text-muted);margin-top:5px;line-height:1.4;display:block}.search-box{border:1px solid var(--border,#e5e7eb);background:#fff;border-radius:8px;align-items:center;gap:8px;margin-top:15px;padding:0 12px;transition:all .2s;display:flex}.search-box:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.search-box svg{color:var(--text-muted,#9ca3af);flex-shrink:0}.search-box input{background:0 0;outline:0;width:100%;padding:11px 0;box-shadow:none!important;border:0!important}.child-search-results{border:1px solid var(--border,#e5e7eb);background:#fff;border-radius:10px;flex-direction:column;margin-top:10px;display:flex;overflow:hidden}.child-result{border:0;border-bottom:1px solid var(--border-light,#f0f0f0);width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;align-items:center;gap:12px;padding:12px 14px;transition:background .15s;display:flex}.child-result:last-child{border-bottom:0}.child-result:hover,.child-result.selected{background:var(--primary-light,#e6f6fc)}.child-result input{flex-shrink:0;height:16px;margin:0;width:16px!important;padding:0!important}.child-result>div{flex-direction:column;flex:1;min-width:0;display:flex}.child-result strong{font-size:13px}.child-result span{color:var(--text-secondary,#6b7280);margin-top:2px;font-size:13px}.empty-search{color:var(--text-muted);text-align:center;padding:15px;font-size:13px}.selected-children{margin-top:14px}.selected-title{margin-bottom:8px;font-size:13px;font-weight:600}.selected-child{border:1px solid var(--border,#e5e7eb);background:#fff;border-radius:8px;align-items:center;gap:8px;margin-bottom:6px;padding:9px 11px;display:flex}.selected-child span{flex:1}.selected-child button,.danger-text-button{color:var(--danger,#ef4444);cursor:pointer;background:0 0;border:0;font-size:13px;font-weight:600}.danger-text-button{font-size:12px}.new-child-card{border:1px solid var(--border,#e5e7eb);background:#fafbfc;border-radius:10px;margin-top:16px;padding:18px}.new-child-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.empty-new-children{border:1px dashed var(--border);border-radius:var(--radius-md);color:var(--text-muted);text-align:center;padding:18px;font-size:13px}.existing-parents-section{margin-top:32px}.existing-parents-section>h3{margin-bottom:14px;font-size:17px}.parent-list{flex-direction:column;gap:10px;display:flex}.parent-card{border:1px solid var(--border,#e5e7eb);background:#fff;border-radius:12px;overflow:hidden}.parent-card-header{box-sizing:border-box;width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.parent-card-header:hover{background:var(--bg-card)}.parent-main{min-width:0}.parent-name{font-size:14px;font-weight:600}.parent-email{color:var(--text-secondary,#6b7280);text-overflow:ellipsis;margin-top:3px;font-size:13px;overflow:hidden}.parent-header-right{flex-shrink:0;align-items:center;gap:10px;display:flex}.parent-card-content{border-top:1px solid var(--border,#e5e7eb);padding:0 18px 18px}.children-title{justify-content:space-between;align-items:center;gap:10px;padding:16px 0 10px;font-size:13px;display:flex}.children-title span{color:var(--text-secondary,#6b7280);font-size:13px}.attached-children{flex-direction:column;gap:8px;display:flex}.attached-child{border:1px solid var(--border,#e5e7eb);background:var(--bg-card);border-radius:9px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.attached-child-info{align-items:center;gap:10px;min-width:0;display:flex}.attached-child-info>div{flex-direction:column;min-width:0;display:flex}.attached-child-info strong{font-size:13px}.attached-child-info span{color:var(--text-secondary,#6b7280);margin-top:2px;font-size:13px}.unlink-button{color:var(--danger,#ef4444);cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #fecaca;border-radius:7px;justify-content:center;align-items:center;gap:6px;padding:7px 10px;display:inline-flex}.unlink-button:hover{background:#fef2f2}.empty-children{border:1px dashed var(--border);border-radius:var(--radius-sm);color:var(--text-muted);padding:14px;font-size:12px}.attach-existing-section{border-top:1px solid var(--border);margin-top:20px;padding-top:20px}.attach-existing-section h4{margin:0 0 10px;font-size:14px}.modal-overlay{z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);-webkit-overflow-scrolling:touch;background:#0f172a94;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0;overflow:hidden}.modal{background:var(--bg-card,#fff);border:1px solid var(--border,#e5e7eb);border-radius:var(--radius-lg,16px);width:100%;max-width:620px;min-height:0;max-height:calc(100dvh - 48px);box-shadow:var(--shadow-lg,0 20px 50px #0003);flex-direction:column;display:flex;overflow:hidden}.modal-large{max-width:820px}.modal-header{border-bottom:1px solid var(--border,#e5e7eb);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:20px;padding:24px;display:flex}.modal-header h2{margin:0 0 6px;font-size:20px}.modal-header p{color:var(--text-secondary,#6b7280);margin:0;font-size:14px;line-height:1.5}.modal-close{border:1px solid var(--border,#e5e7eb);background:var(--bg-card,#fff);width:36px;height:36px;color:var(--text-secondary,#6b7280);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s,border-color .15s;display:flex}.modal-close:hover{background:var(--bg-main,#f5f7fa);color:var(--text-primary,#1a1a2e);border-color:var(--primary)}.modal-form{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1;min-height:0;padding:24px;overflow:hidden auto}.modal-form::-webkit-scrollbar{width:8px}.modal-form::-webkit-scrollbar-track{background:0 0}.modal-form::-webkit-scrollbar-thumb{background:#64748b59;border-radius:10px}.modal-form::-webkit-scrollbar-thumb:hover{background:#64748b8c}.modal-actions{border-top:1px solid var(--border,#e5e7eb);justify-content:flex-end;align-items:center;gap:10px;margin-top:24px;padding-top:20px;display:flex}.modal>.modal-actions{background:var(--bg-card,#fff);flex-shrink:0;margin-top:0;padding:18px 24px}.success-message{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:10px;margin:18px 0;padding:12px 14px;font-size:14px}.form-errors{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-top:16px;padding:12px 14px;font-size:13px}.credentials-modal{max-width:650px}.credentials-warning{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;align-items:flex-start;gap:12px;margin:20px 24px 0;padding:14px;display:flex}.credentials-warning svg{flex-shrink:0;margin-top:1px}.credentials-warning div{flex-direction:column;gap:4px;display:flex}.credentials-warning strong{font-size:14px}.credentials-warning span{font-size:13px;line-height:1.45}.credentials-list{flex-direction:column;gap:12px;padding:20px 24px;display:flex;overflow-y:auto}.credential-card{border:1px solid var(--border,#e5e7eb);background:#fff;border-radius:10px;padding:16px}.credential-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.credential-header>div{flex-direction:column;gap:3px;display:flex}.credential-header span{color:var(--text-secondary,#6b7280);font-size:13px}.credential-row{border-top:1px solid var(--border-light,#f0f0f0);align-items:center;gap:12px;padding:9px 0;display:flex}.credential-row>span{width:60px;color:var(--text-secondary,#6b7280);flex-shrink:0;font-size:13px}.credential-row strong{overflow-wrap:anywhere}.password-row code{color:var(--text-primary,#1a1a2e);overflow-wrap:anywhere;background:#f3f4f6;border-radius:6px;flex:1;padding:6px 9px;font-family:monospace;font-size:14px;font-weight:700}.one-time-password{color:#047857;background:#ecfdf5;border-radius:7px;align-items:center;gap:7px;margin-top:10px;padding:9px 10px;font-size:12px;font-weight:600;display:flex}.credentials-screenshot{color:#374151;background:#f3f4f6;border-radius:10px;flex-direction:column;gap:4px;margin-top:22px;padding:14px 16px;display:flex}.credentials-screenshot strong{font-size:14px}.credentials-screenshot span{color:#6b7280;font-size:13px}.settings-modal-overlay{z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a8c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0;overflow:hidden}.settings-modal{background:#fff;border-radius:16px;flex-direction:column;width:min(720px,100%);min-height:0;max-height:calc(100dvh - 48px);display:flex;overflow:hidden;box-shadow:0 24px 70px #0f172a40}.parent-create-modal{width:min(760px,100%)}.settings-modal-header{border-bottom:1px solid #e5e7eb;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:20px;padding:24px 26px;display:flex}.settings-modal-header h2{margin:0 0 5px;font-size:20px}.settings-modal-header p{color:#6b7280;margin:0;font-size:14px}.modal-close-button{color:#6b7280;cursor:pointer;background:0 0;border:0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:all .15s;display:flex}.modal-close-button:hover{color:#111827;background:#f3f4f6}.settings-modal-body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1;min-height:0;padding:24px 26px;overflow:hidden auto}.modal-form-actions{border-top:1px solid #e5e7eb;justify-content:flex-end;align-items:center;gap:10px;margin-top:10px;padding-top:20px;display:flex}.settings-modal>.modal-form-actions{flex-shrink:0;margin:0;padding:18px 26px 24px}.settings-modal-body .parent-child-section{margin-top:24px}.credentials-content{padding:26px}.credential-field{margin-bottom:18px}.credential-field label{color:#374151;margin-bottom:7px;font-size:13px;font-weight:600;display:block}.credential-value{background:#f9fafb;border:1px solid #d1d5db;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;min-height:50px;padding:8px 10px 8px 15px;display:flex}.credential-value span{color:#111827;word-break:break-all;font-family:monospace;font-size:15px;font-weight:600}.credential-password{background:#eff6ff;border-color:#93c5fd}.credential-password span{letter-spacing:.5px;font-size:18px}@media (width<=768px){.modal-overlay,.settings-modal-overlay{align-items:flex-start;padding:12px}.modal,.settings-modal{width:100%;min-height:0;max-height:calc(100dvh - 24px)}.modal-header,.modal-form{padding:18px}.settings-modal-header{padding:18px 20px}.settings-modal-body,.credentials-content{padding:20px}.credentials-list{padding:16px 18px}.credentials-warning{margin:16px 18px 0}.section-heading-row{flex-direction:column;align-items:flex-start}.section-heading-row .btn{width:100%}.password-generator{flex-wrap:wrap}.password-generator input{flex-basis:100%;width:100%}.password-generator .btn{flex:1}.attached-child{flex-direction:column;align-items:flex-start}.unlink-button{justify-content:center;width:100%}.parents-page-header{flex-direction:column;align-items:stretch}.parents-page-header .btn{justify-content:center;width:100%}.modal-actions{flex-direction:column-reverse}.modal-actions .btn{justify-content:center;width:100%}.settings-modal>.modal-form-actions{flex-direction:column-reverse}.settings-modal>.modal-form-actions .btn{width:100%}.credentials-modal .modal-form-actions{flex-direction:column-reverse}.credentials-modal .modal-form-actions .btn{width:100%}}@media (width<=480px){.modal-overlay,.settings-modal-overlay{padding:0}.modal,.settings-modal{border-radius:0;width:100%;height:100dvh;min-height:0;max-height:100dvh;overflow:hidden}.modal-header{flex-shrink:0;padding:16px}.modal-form{-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:16px;overflow:hidden auto}.modal>.modal-actions,.settings-modal-header{flex-shrink:0;padding:16px}.settings-modal-body{-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:16px;overflow:hidden auto}.settings-modal>.modal-form-actions{flex-shrink:0;padding:16px}.credentials-list{padding:14px 16px}.credentials-warning{margin:14px 16px 0}.credential-row{flex-wrap:wrap;align-items:flex-start}.credential-row>span{width:100%}.password-row code{width:calc(100% - 50px)}.parents-page-header{margin-bottom:20px}.user-card-header,.parent-card-header{padding:12px}.user-meta .role-badge,.parent-header-right .role-badge{display:none}.user-card-options,.parent-card-content{padding-left:12px;padding-right:12px}.attached-child{flex-direction:column}.unlink-button{align-self:stretch;width:100%}}@supports (padding:max(0px)){@media (width<=480px){.modal-header{padding-top:max(16px, env(safe-area-inset-top))}.modal>.modal-actions,.settings-modal>.modal-form-actions{padding-bottom:max(16px, env(safe-area-inset-bottom))}}}.form-error{color:#dc2626;margin-top:.35rem;font-size:.8rem}.updates-page{width:100%;max-width:1000px;margin:0 auto}.updates-hero{background:linear-gradient(135deg,#faf9ff 0%,#f5f3ff 100%);border:1px solid #e8e5ff;border-radius:18px;align-items:center;gap:16px;margin-bottom:22px;padding:22px 24px;display:flex;box-shadow:0 4px 16px #4f46e50f}.updates-hero-icon{color:#6d5dfc;background:#ebe8ff;border-radius:15px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.updates-eyebrow{letter-spacing:.12em;color:#7669dc;margin-bottom:3px;font-size:11px;font-weight:800}.updates-hero h2{color:#18181b;margin:0;font-size:25px;line-height:1.2}.updates-hero p{color:#71717a;margin:5px 0 0;font-size:14px}.updates-card{background:#fff;border:1px solid #e4e4e7;border-radius:16px;margin-bottom:16px;position:relative;overflow:hidden;box-shadow:0 2px 10px #00000009}.updates-card-header{border-bottom:1px solid #f0f0f2;align-items:center;gap:12px;padding:17px 20px;display:flex}.updates-card-header h3{color:#18181b;margin:0;font-size:17px;font-weight:700}.updates-icon{border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.updates-card-content{padding:5px 20px 10px}.updates-item{color:#52525b;align-items:flex-start;gap:12px;padding:11px 0;font-size:14px;line-height:1.55;display:flex}.updates-item+.updates-item{border-top:1px solid #f4f4f5}.updates-dot{background:currentColor;border-radius:50%;flex-shrink:0;width:7px;height:7px;margin-top:7px}.updates-item-content{flex-wrap:wrap;align-items:center;gap:7px;min-width:0;display:flex}.updates-badge{letter-spacing:.04em;color:#fff;background:#71717a;border-radius:6px;align-items:center;padding:3px 7px;font-size:9px;font-weight:800;display:inline-flex}.updates-card-purple .updates-icon{color:#7c3aed;background:#f3e8ff}.updates-card-purple .updates-dot{color:#8b5cf6}.updates-card-purple .updates-badge{background:#8b5cf6}.updates-card-red .updates-icon{color:#dc2626;background:#fee2e2}.updates-card-red .updates-dot{color:#ef4444}.updates-card-red .updates-badge{background:#ef4444}.updates-card-blue .updates-icon{color:#2563eb;background:#dbeafe}.updates-card-blue .updates-dot{color:#3b82f6}.updates-card-blue .updates-badge{background:#3b82f6}.updates-card-green .updates-icon{color:#16a34a;background:#dcfce7}.updates-card-green .updates-dot{color:#22c55e}.updates-card-green .updates-badge{background:#22c55e}.updates-card-orange .updates-icon{color:#ea580c;background:#ffedd5}.updates-card-orange .updates-dot{color:#f97316}.updates-card-orange .updates-badge{background:#f97316}.updates-card-pink .updates-icon{color:#db2777;background:#fce7f3}.updates-card-pink .updates-dot{color:#ec4899}.updates-card-pink .updates-badge{background:#ec4899}.updates-card-cyan .updates-icon{color:#0891b2;background:#cffafe}.updates-card-cyan .updates-dot{color:#06b6d4}.updates-card-cyan .updates-badge{background:#06b6d4}.updates-card-teal .updates-icon{color:#0f766e;background:#ccfbf1}.updates-card-teal .updates-dot{color:#14b8a6}.updates-card-teal .updates-badge{background:#14b8a6}.updates-card-indigo .updates-icon{color:#4f46e5;background:#e0e7ff}.updates-card-indigo .updates-dot{color:#6366f1}.updates-card-indigo .updates-badge{background:#6366f1}.updates-card-violet .updates-icon{color:#7c3aed;background:#ede9fe}.updates-card-violet .updates-dot{color:#8b5cf6}.updates-card-violet .updates-badge{background:#8b5cf6}.updates-footer{color:#a1a1aa;justify-content:center;align-items:center;gap:8px;padding:24px 10px 10px;font-size:13px;display:flex}.updates-footer svg{color:#8b5cf6}@media (width<=700px){.updates-page{width:100%}.updates-hero{border-radius:14px;align-items:flex-start;margin-bottom:15px;padding:17px}.updates-hero-icon{border-radius:12px;width:44px;height:44px}.updates-hero h2{font-size:21px}.updates-hero p{font-size:13px;line-height:1.45}.updates-card{border-radius:13px;margin-bottom:12px}.updates-card-header{gap:10px;padding:14px 15px}.updates-card-header h3{font-size:15px}.updates-icon{border-radius:9px;width:34px;height:34px}.updates-card-content{padding:3px 15px 7px}.updates-item{gap:10px;padding:10px 0;font-size:13px;line-height:1.55}.updates-dot{width:6px;height:6px;margin-top:7px}.updates-badge{padding:2px 6px;font-size:8px}.updates-footer{padding-top:18px;padding-bottom:5px;font-size:12px}}@media (width<=400px){.updates-hero{padding:14px}.updates-hero-icon{width:40px;height:40px}.updates-hero h2{font-size:19px}.updates-hero p{font-size:12px}.updates-card-header{padding:13px}.updates-card-content{padding-left:13px;padding-right:13px}.updates-item{font-size:12.5px}}.user-list{flex-direction:column;gap:10px;display:flex}.user-card{border:1px solid var(--border);background:var(--bg-main);border-radius:14px;transition:border-color .2s,box-shadow .2s,transform .2s;position:relative;overflow:hidden}.user-card:hover{border-color:color-mix(in srgb, var(--primary) 30%, var(--border));box-shadow:0 4px 18px #0000000d}.user-card-header{width:100%;min-height:76px;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:20px;padding:15px 18px;transition:background .2s;display:flex}.user-card-header:hover{background:var(--bg-card)}.user-card-header:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.user-main{flex-direction:column;gap:3px;min-width:0;display:flex}.user-name{min-width:0;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;align-items:center;font-size:15px;font-weight:650;display:flex;overflow:hidden}.user-email{max-width:600px;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:0;font-size:12.5px;overflow:hidden}.user-meta{color:var(--text-muted);flex-shrink:0;align-items:center;gap:7px;display:flex}.role-badge,.admin-badge{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;min-height:25px;padding:4px 10px;font-size:11px;font-weight:650;line-height:1;display:inline-flex}.role-badge{border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary)}.admin-badge{background:var(--danger-light,#fee2e2);color:var(--danger,#ef4444);border:1px solid #ef444426}.user-meta>svg{color:var(--text-muted);margin-left:4px;transition:transform .2s}.user-card-options{box-sizing:border-box;border-top:1px solid var(--border);background:var(--bg-card);width:100%;max-width:none;padding:24px;animation:.2s userOptionsIn}@keyframes userOptionsIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.user-card-options>.password-reset-section:first-child{border-top:0;margin-top:0;padding-top:0}.password-reset-section{border-top:1px solid var(--border);margin-top:28px;padding-top:25px}.password-reset-section h3{color:var(--text-primary);align-items:center;margin:0 0 18px;font-size:15px;font-weight:650;display:flex}.user-card-options .form-group{margin-bottom:18px}.user-card-options .form-group:last-child{margin-bottom:0}.user-card-options label{color:var(--text-secondary);margin-bottom:7px;font-size:12px;font-weight:600;display:block}.user-card-options input[type=text],.user-card-options input[type=email],.user-card-options input[type=password],.user-card-options select{box-sizing:border-box;border:1px solid var(--border);background:var(--bg-main);width:100%;min-height:43px;color:var(--text-primary);border-radius:9px;outline:none;padding:10px 13px;font-family:inherit;font-size:13px;transition:border-color .2s,box-shadow .2s,background .2s}.user-card-options input::placeholder{color:var(--text-muted)}.user-card-options input[type=text]:hover,.user-card-options input[type=email]:hover,.user-card-options select:hover{border-color:color-mix(in srgb, var(--primary) 35%, var(--border))}.user-card-options input[type=text]:focus,.user-card-options input[type=email]:focus,.user-card-options select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);background:var(--bg-card)}.user-card-options select{cursor:pointer;appearance:auto}.user-card-options small{color:var(--text-muted);margin-top:6px;font-size:11.5px;line-height:1.4;display:block}.user-card-options .info-box{box-sizing:border-box;border:1px solid color-mix(in srgb, var(--primary) 25%, var(--border));background:var(--primary-light);width:100%;color:var(--text-secondary);border-radius:9px;align-items:flex-start;gap:9px;margin:0 0 18px;padding:12px 13px;font-size:12px;line-height:1.5;display:flex}.user-card-options .info-box svg{width:16px;height:16px;color:var(--primary);flex-shrink:0;margin-top:1px}.user-card-options .btn{border-radius:9px;min-height:40px;padding:9px 14px;font-size:13px;font-weight:600;transition:transform .15s,box-shadow .2s,opacity .2s,background .2s}.user-card-options .btn:hover{opacity:.94;transform:translateY(-1px)}.user-card-options .btn:active{transform:translateY(0)}.user-card-options .btn-primary{box-shadow:0 3px 10px #00000014}.user-card-options .btn-success{background:#16a34a;box-shadow:0 3px 10px #16a34a2e}.user-card-options .btn-danger{background:var(--danger,#ef4444);color:#fff;box-shadow:0 3px 10px #ef444429}.user-card-options .btn-danger:hover{background:#dc2626}.password-generator{align-items:stretch;gap:8px;width:100%;display:flex}.password-generator input{letter-spacing:.3px;flex:1;min-width:0;font-weight:600;font-family:monospace!important}.password-generator .btn{flex-shrink:0;min-width:105px}.user-card-options .checkbox-group{box-sizing:border-box;border:1px solid var(--border);background:var(--bg-main);border-radius:9px;align-items:center;width:fit-content;max-width:100%;margin:4px 0 0;padding:10px 13px;transition:border-color .2s,background .2s,box-shadow .2s;display:inline-flex}.user-card-options .checkbox-group:hover{border-color:color-mix(in srgb, var(--primary) 35%, var(--border));background:var(--bg-card)}.user-card-options .checkbox-group label{cursor:pointer;color:var(--text-primary);white-space:nowrap;align-items:center;gap:10px;margin:0;font-size:13px;font-weight:600;display:inline-flex!important}.user-card-options .checkbox-group input[type=checkbox]{appearance:none;border:1px solid var(--border);background:var(--bg-card);cursor:pointer;border-radius:5px;flex-shrink:0;min-width:18px;height:18px;margin:0;transition:background .15s,border-color .15s,box-shadow .15s;width:18px!important;padding:0!important}.user-card-options .checkbox-group input[type=checkbox]:hover{border-color:var(--primary)}.user-card-options .checkbox-group input[type=checkbox]:focus-visible{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);outline:none}.user-card-options .checkbox-group input[type=checkbox]:checked{border-color:var(--primary);background:var(--primary)}.user-card-options .checkbox-group input[type=checkbox]:checked:after{content:"";border-bottom:2px solid #fff;border-right:2px solid #fff;width:5px;height:9px;margin:2px auto 0;display:block;transform:rotate(45deg)}@media (width>=769px){.user-card-options>.checkbox-group{grid-column:auto;justify-self:start;width:fit-content}}@media (width<=700px){.user-card-options .checkbox-group{width:fit-content;max-width:100%;padding:10px 12px}.user-card-options .checkbox-group label{white-space:normal;font-size:12.5px}}.user-card-options .password-reset-section[style]{border-top:1px solid #ef444433!important;margin-top:30px!important;padding-top:24px!important}.user-card-options .password-reset-section[style] h3{color:var(--danger,#ef4444)}.user-card-options .password-reset-section[style] .info-box{background:var(--danger-light,#fef2f2);color:var(--text-secondary);border-color:#ef444433}.user-card-options .password-reset-section[style] .info-box svg{color:var(--danger,#ef4444)}@media (width>=769px){.user-card-options{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 30px;display:grid}.user-card-options .password-reset-section:first-child{grid-column:1/-1}.user-card-options>.form-group:not(.checkbox-group){grid-column:span 1}.user-card-options>.checkbox-group,.user-card-options .password-reset-section:not(:first-child),.user-card-options .password-reset-section[style]{grid-column:1/-1}}@media (width<=700px){.user-card-header{gap:12px;min-height:68px;padding:13px 14px}.user-name{font-size:14px}.user-email{max-width:230px;font-size:11.5px}.user-meta{gap:5px}.user-meta .role-badge{display:none}.admin-badge{padding:4px 8px;font-size:10px}.user-card-options{padding:18px 14px}.password-reset-section{margin-top:25px;padding-top:22px}.password-reset-section h3{font-size:14px}.user-card-options .info-box{font-size:11.5px}.password-generator{flex-direction:column}.password-generator input,.password-generator .btn,.user-card-options .btn{width:100%}}@media (width<=480px){.user-list{gap:7px}.user-card{border-radius:11px}.user-card-header{gap:8px;padding:11px}.user-name{max-width:190px;font-size:13.5px}.user-email{max-width:180px;font-size:11px}.user-card-options{padding:16px 11px}.user-card-options input[type=text],.user-card-options input[type=email],.user-card-options select{min-height:41px;padding:9px 11px;font-size:13px}.password-reset-section{margin-top:22px;padding-top:20px}}@media (prefers-color-scheme:dark){.user-card-options .checkbox-group{background:var(--bg-main)}}.user-email.no-login{color:#ef4444;opacity:1}.force-password-wrapper{box-sizing:border-box;z-index:9999;background:#1e1f22;justify-content:center;align-items:center;width:100vw;min-height:100vh;padding:16px;display:flex;position:fixed;top:0;left:0}.force-password-card{background:#2b2d31;border-radius:12px;width:100%;max-width:420px;overflow:hidden;box-shadow:0 10px 30px #0006}.force-password-header{background:#019cde;align-items:center;gap:12px;padding:20px 24px;display:flex}.force-password-header h1{color:#fff;margin:0;font-size:18px;font-weight:700;line-height:1.2}.force-password-header p{color:#fffc;margin:2px 0 0;font-size:13px}.force-password-body{padding:24px}.force-password-warning{color:#ffc107;background:#ffc10726;border:1px solid #ffc10766;border-radius:8px;margin-bottom:24px;padding:12px 16px;font-size:13px;line-height:1.4}.force-password-logged-in{color:#fff9;margin-bottom:20px;font-size:13px}.force-password-logged-in strong{color:#fff}.force-password-input-group{margin-bottom:20px}.force-password-input-group.margin-bottom-24{margin-bottom:24px}.force-password-input-group label{color:#9ca3af;margin-bottom:6px;font-size:13px;display:block}.force-password-input{color:#fff;box-sizing:border-box;background:0 0;border:1px solid #6f7072;border-radius:6px;outline:none;width:100%;padding:12px 14px;font-size:14px;transition:border-color .2s}.force-password-input:focus{border-color:#019cde}.force-password-error{color:#ef4444;margin-top:4px;font-size:12px}.force-password-submit-btn{color:#fff;cursor:pointer;background:#019cde;border:none;border-radius:6px;width:100%;margin-bottom:12px;padding:13px;font-size:15px;font-weight:600;transition:background .2s,opacity .2s}.force-password-submit-btn:hover{background:#017fb5}.force-password-submit-btn:disabled{cursor:not-allowed;opacity:.7}.force-password-logout-btn{color:#9ca3af;cursor:pointer;background:0 0;border:1px solid #6f7072;border-radius:6px;justify-content:center;align-items:center;gap:6px;width:100%;padding:10px;font-size:13px;transition:background .2s,color .2s;display:flex}.force-password-logout-btn:hover{color:#fff;background:#ffffff0d}@media (width<=480px){.force-password-card{max-width:95%}}.login-wrapper{z-index:9999;background:#1e1f22;justify-content:center;align-items:center;width:100vw;min-height:100vh;display:flex;position:fixed;top:0;left:0}.login-card{background:#2b2d31;border-radius:12px;width:420px;max-width:90%;overflow:hidden;box-shadow:0 10px 30px #0006}.login-header{text-align:center;color:#fff;letter-spacing:2px;background:#019cde;padding:20px;font-size:22px;font-weight:700}.logo-container{background:#fff;justify-content:center;align-items:center;padding:30px 40px;display:flex}.logo-container img{max-width:150px;height:auto}.form{padding:30px 25px}.input-group{margin-bottom:30px;position:relative}.input-group input{color:#fff;appearance:none;background:0 0;border:1px solid #6f7072;border-radius:6px;outline:none;width:100%;padding:14px 12px;font-size:14px}.input-group input:focus{border-color:#019cde}.input-group label{color:#6f7072;pointer-events:none;background:#2b2d31;padding:0 5px;font-size:14px;transition:all .2s;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.input-group input:focus+label,.input-group input:not(:placeholder-shown)+label{color:#019cde;font-size:12px;top:0}.login-btn{color:#fff;cursor:pointer;background:#019cde;border:none;border-radius:6px;width:100%;margin-top:5px;padding:13px;font-size:16px;transition:all .2s}.login-btn:hover{background:#017fb5}.login-btn:disabled{opacity:.6;cursor:not-allowed}.forgot{text-align:center;margin-top:15px}.forgot a{color:#019cde;font-size:14px;text-decoration:none}.forgot a:hover{text-decoration:underline}.error-msg{color:#ef4444;text-align:center;margin-top:-20px;margin-bottom:15px;font-size:12px}@media (width<=900px){.login-card{width:95%}.login-header{padding:25px;font-size:28px}.logo-container{padding:40px}.logo-container img{max-width:160px}.form{padding:35px 30px}.input-group input{padding:18px 14px;font-size:16px}.login-btn{padding:16px;font-size:18px}}.dashboard{box-sizing:border-box;width:100%;max-width:1600px;margin:0 auto;padding:20px}.dashboard-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.dashboard-header h1{color:var(--text-primary);margin:0;font-size:24px;font-weight:650;line-height:1.2}.dashboard-subtitle{color:var(--text-secondary);margin:5px 0 0;font-size:13px}.role-badge{background:var(--primary-light);color:var(--primary);white-space:nowrap;border-radius:20px;margin:0;padding:5px 12px;font-size:12px;font-weight:600}.dashboard-grid{grid-template-columns:minmax(0,2fr) minmax(320px,1fr);gap:20px;display:grid}.card{box-sizing:border-box;background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px}.card h3{color:var(--text-primary);align-items:center;gap:8px;margin:0 0 14px;font-size:15px;font-weight:650;display:flex}.calendar-card{isolation:isolate;min-width:0;position:relative}.calendar-card-header{justify-content:center;align-items:center;width:100%;min-height:40px;margin-bottom:16px;display:flex;position:relative}.calendar-title{z-index:2;box-sizing:border-box;white-space:nowrap;justify-content:center;align-items:center;gap:8px;height:40px;padding:0;display:inline-flex;position:absolute;top:0;left:50%;transform:translate(-50%)}.calendar-title h3{height:40px;color:var(--text-primary);text-transform:capitalize;align-items:center;margin:0;font-size:16px;font-weight:650;line-height:1;display:flex}.calendar-title svg{width:17px;height:17px;color:var(--primary);flex-shrink:0;display:block}.dashboard .calendar-nav{box-sizing:border-box;pointer-events:none;z-index:3;width:100%;height:40px;margin:0;padding:0;display:block;position:absolute;inset:0;background:0 0!important;border:none!important}.dashboard .calendar-nav>button{box-sizing:border-box;cursor:pointer;pointer-events:auto;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;margin:0;padding:0;transition:background .15s,color .15s,border-color .15s,box-shadow .15s,transform .15s;display:flex;position:absolute;top:50%;transform:translateY(-50%);background:var(--bg-card)!important;color:var(--text-secondary)!important;border:1px solid var(--border)!important}.dashboard .calendar-nav>button:first-child{left:0}.dashboard .calendar-nav>button:last-child{right:0}.dashboard .calendar-nav>button:hover{transform:translateY(-50%);box-shadow:0 2px 6px #00000014;background:var(--primary-light)!important;color:var(--primary)!important;border-color:var(--primary)!important}.dashboard .calendar-nav>button:active{transform:translateY(-50%)scale(.96)}.dashboard .calendar-nav>button svg{flex-shrink:0;width:16px;height:16px}.calendar-weekdays{z-index:1;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-bottom:6px;display:grid;position:relative}.weekday{text-align:center;min-width:0;color:var(--text-muted);font-size:11px;font-weight:600}.calendar-grid{z-index:1;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid;position:relative}.calendar-day{aspect-ratio:1;background:var(--bg-main);min-width:0;color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:13px;font-weight:550;transition:background .15s,border-color .15s,transform .15s,box-shadow .15s,filter .15s;display:flex;position:relative;overflow:hidden}.calendar-day:hover:not(.empty){background:var(--primary-light);color:var(--primary);transform:translateY(-1px)}.calendar-day.empty{cursor:default;background:0 0;border-color:#0000}.calendar-day.has-training{background:var(--calendar-group-color,var(--primary));border-color:var(--calendar-group-color,var(--primary));color:#fff;box-shadow:0 2px 6px #0000001a}.calendar-day.has-training:hover{background:var(--calendar-group-color,var(--primary));border-color:var(--calendar-group-color,var(--primary));color:#fff;filter:brightness(.92);transform:translateY(-1px);box-shadow:0 4px 10px #00000029}.calendar-day.has-event{color:#fff;box-shadow:0 2px 6px #0000001a}.calendar-day.has-event:hover{color:#fff;filter:brightness(.92);transform:translateY(-1px);box-shadow:0 4px 10px #00000029}.calendar-day.has-training.has-event{color:#fff}.calendar-status.event{color:#fff;background:#0f172a8c;border:1px solid #ffffffbf;border-radius:50%;justify-content:center;align-items:center;width:15px;height:15px;font-size:13px;font-weight:900;line-height:1;display:flex;box-shadow:0 1px 3px #00000040}.calendar-day.multiple-trainings{color:#fff;background:#64748b;border-color:#64748b}.calendar-day.multiple-trainings:hover{color:#fff;filter:brightness(.92);background:#64748b;border-color:#64748b;box-shadow:0 4px 10px #0000002b}.calendar-day.today:not(.has-training):not(.has-event){background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 2px 7px #0000001a}.calendar-day.today:not(.has-training):not(.has-event):hover{background:var(--primary-hover);border-color:var(--primary-hover);color:#fff}.calendar-day.today.has-training,.calendar-day.today.has-event{box-shadow:0 0 0 2px #ffffffe6,0 3px 10px #00000029}.calendar-day.selected{outline:2px solid var(--primary);outline-offset:1px}.calendar-day.has-training.selected,.calendar-day.has-event.selected{outline-color:#fffffff2}.calendar-day-number{z-index:2;position:relative}.calendar-statuses{z-index:10;align-items:center;gap:3px;display:flex;position:absolute;top:4px;right:4px}.calendar-status{color:#fff;border:1px solid #ffffffb3;border-radius:50%;justify-content:center;align-items:center;width:15px;height:15px;font-size:9px;font-weight:800;line-height:1;display:flex;box-shadow:0 1px 3px #00000040}.calendar-status.cancelled{background:var(--danger)}.calendar-status.rescheduled{background:#f59e0b}.calendar-multiple-count{color:#fff;z-index:8;background:#ffffff38;border-radius:8px;justify-content:center;align-items:center;min-width:14px;height:14px;padding:0 3px;font-size:8px;font-weight:700;line-height:1;display:flex;position:absolute;bottom:4px;right:5px}.calendar-legend{border-top:1px solid var(--border-light);color:var(--text-muted);flex-wrap:wrap;gap:14px;margin-top:14px;padding-top:12px;font-size:11px;display:flex}.calendar-legend>span{align-items:center;display:inline-flex}.legend-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;margin-right:5px;display:inline-block}.legend-dot.training{background:var(--success)}.legend-dot.cancelled{background:var(--danger)}.legend-dot.changed{background:#f59e0b}.legend-dot.today-dot{background:var(--primary)}.dashboard-side{flex-direction:column;gap:12px;min-width:0;display:flex}.today-card{color:#fff;border:none;position:relative;overflow:hidden;background:linear-gradient(135deg, var(--primary), #00b8e6)!important}.today-heading{box-sizing:border-box;justify-content:space-between;align-items:flex-start;gap:14px;width:100%;min-width:0;margin-bottom:15px;display:flex}.today-heading>div:first-child{flex:1;min-width:0}.today-label{color:#ffffffbf;text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px;font-size:10px;font-weight:600;display:block}.today-card h3{color:#fff;overflow-wrap:anywhere;min-width:0;margin:0;font-size:17px;font-weight:650;line-height:1.3}.today-icon{background:#ffffff29;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.today-info{color:#fff;opacity:.9;margin:0;font-size:13px;line-height:1.45}.today-details{box-sizing:border-box;flex-direction:column;gap:7px;width:100%;margin-bottom:12px;display:flex}.today-details div{color:#ffffffe6;align-items:center;gap:7px;min-width:0;font-size:13px;display:flex}.today-details svg{flex-shrink:0}.today-button{text-align:center;box-sizing:border-box;justify-content:center;align-items:center;width:100%;margin-top:10px;display:flex}.today-button svg{flex-shrink:0}.today-card .today-button,.today-card a.today-button,.today-card button.today-button{position:relative;inset:auto;transform:none}.today-card .btn-primary{color:var(--primary);background:#fff;width:100%}.today-card .btn-primary:hover{color:var(--primary-hover);background:#ffffffeb}.today-card.cancelled-card{background:linear-gradient(135deg,#ef4444,#dc2626)!important}.today-status{flex-direction:column;gap:4px;display:flex}.today-status strong{color:#fff;font-size:15px}.today-status span{color:#fffc;font-size:12px}.badge{background:var(--primary);color:#fff;border-radius:20px;flex-shrink:0;justify-content:center;align-items:center;min-width:20px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge-warning{color:#f59e0b;background:#f59e0b29;border-radius:5px;align-items:center;width:fit-content;padding:3px 7px;font-size:10px;font-weight:650;display:inline-flex}.today-card .badge-warning{color:#fff;background:#ffffff2e}.badge-warning.small{white-space:nowrap;padding:3px 6px;font-size:9px}.badge-danger{background:var(--danger);color:#fff;border-radius:5px;align-items:center;margin-left:7px;padding:3px 7px;font-size:10px;font-weight:650;display:inline-flex}.btn{box-sizing:border-box;border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-family:inherit;font-size:14px;font-weight:500;line-height:1.2;text-decoration:none;transition:background .2s,color .2s,border-color .2s,transform .15s,box-shadow .2s,opacity .2s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-secondary{background:var(--bg-main);color:var(--text-primary);border-color:var(--border)}.btn-secondary:hover:not(:disabled){color:var(--primary);border-color:var(--primary)}.btn-plan{color:inherit;background:#ffffff1f;border-color:#ffffff40}.btn-plan:hover:not(:disabled){background:#fff3}.modal-content .btn-plan{background:var(--primary-light);color:var(--primary);border-color:#0000}.modal-content .btn-plan:hover:not(:disabled){background:var(--primary);color:#fff}.quick-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.action-btn{background:var(--bg-main);color:var(--text-primary);border-radius:var(--radius-sm);text-align:center;border:1px solid #0000;justify-content:center;align-items:center;gap:5px;padding:10px;font-size:12px;text-decoration:none;transition:background .2s,color .2s,border-color .2s,transform .2s;display:flex}.action-btn:hover{background:var(--primary-light);color:var(--primary);border-color:var(--primary);transform:translateY(-1px)}.action-plus{font-size:16px;font-weight:500;line-height:1}.link-card{justify-content:space-between;align-items:center;gap:12px;text-decoration:none;transition:border-color .2s,box-shadow .2s,transform .2s;display:flex}.link-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.link-card h4{color:var(--text-primary);align-items:center;gap:6px;margin:0 0 4px;font-size:14px;font-weight:650;display:flex}.link-card h4 svg{color:var(--primary);flex-shrink:0}.link-card p{color:var(--text-secondary);margin:0;font-size:12px}.link-card>svg{color:var(--text-muted);flex-shrink:0;transition:color .2s,transform .2s}.link-card:hover>svg{color:var(--primary);transform:translate(2px)}.upcoming-list{flex-direction:column;display:flex}.upcoming-item{border-bottom:1px solid var(--border-light);align-items:center;gap:8px;min-width:0;padding:10px 0;display:flex;position:relative}.upcoming-item:last-child{border-bottom:none}.upcoming-main{min-width:0;color:var(--text-primary);flex:1;align-items:center;gap:9px;text-decoration:none;transition:padding-left .15s;display:flex}.upcoming-main:hover{padding-left:4px}.group-color{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.upcoming-main>div{min-width:0}.upcoming-main strong{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;display:block;overflow:hidden}.upcoming-item .date{color:var(--text-muted);margin-top:2px;font-size:11px;display:block}.upcoming-time{background:var(--bg-main);border-radius:var(--radius-sm);color:var(--text-primary);white-space:nowrap;flex-shrink:0;align-items:center;gap:4px;padding:5px 7px;font-size:12px;font-weight:550;display:flex}.upcoming-plan-button{background:var(--primary-light);min-height:28px;color:var(--primary);border-radius:var(--radius-sm);white-space:nowrap;cursor:pointer;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;gap:4px;padding:5px 8px;font-family:inherit;font-size:10px;font-weight:650;transition:background .18s,color .18s,border-color .18s,transform .18s;display:inline-flex}.upcoming-plan-button:hover{background:var(--primary);color:#fff;border-color:var(--primary);transform:translateY(-1px)}.upcoming-plan-button:active{transform:translateY(0)}.upcoming-plan-button svg{flex-shrink:0}.empty-upcoming{color:var(--text-secondary);margin:0;padding:4px 0;font-size:13px}.stats-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.stat{background:var(--bg-main);border-radius:var(--radius-md);text-align:center;padding:12px}.stat-value{color:var(--primary);font-size:24px;font-weight:700;display:block}.modal-overlay{z-index:1000;box-sizing:border-box;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#00000073;justify-content:center;align-items:center;padding:16px;animation:.18s ease-out modalOverlayIn;display:flex;position:fixed;inset:0}.training-plan-overlay{z-index:1100}@keyframes modalOverlayIn{0%{opacity:0}to{opacity:1}}.modal-content{box-sizing:border-box;background:var(--bg-card);width:100%;max-width:520px;max-height:calc(100vh - 32px);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;animation:.18s ease-out modalIn;display:flex;overflow:hidden}.training-plan-modal{max-width:650px}@keyframes modalIn{0%{opacity:0;transform:translateY(-12px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-header{background:var(--bg-card);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:15px 18px;display:flex}.modal-header>div{min-width:0}.modal-header h3{color:var(--text-primary);text-transform:capitalize;align-items:center;gap:7px;margin:3px 0 0;font-size:14px;font-weight:600;display:flex}.modal-header h3 svg{color:var(--primary);flex-shrink:0}.modal-date-label{color:var(--text-muted);letter-spacing:.1em;font-size:9px;font-weight:700;display:block}.modal-close{width:30px;height:30px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background .2s,color .2s;display:flex}.modal-close:hover:not(:disabled){background:var(--bg-main);color:var(--text-primary)}.modal-close:disabled{opacity:.5;cursor:not-allowed}.modal-body{scrollbar-width:thin;padding:16px 18px;overflow-y:auto}.modal-events-section{flex-direction:column;gap:10px;margin:0 0 12px;display:flex}.modal-event{background:var(--bg-main);border:1px solid var(--border);border-left:4px solid #334155;border-radius:12px;padding:13px 14px;transition:box-shadow .2s,transform .2s,border-color .2s;position:relative}.modal-event:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.modal-event-title{min-width:0;color:var(--text-primary);align-items:center;gap:8px;font-size:14px;font-weight:650;line-height:1.35;display:flex}.modal-event-title strong{overflow-wrap:anywhere;min-width:0}.modal-event-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px;display:inline-block}.modal-event-time{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:6px;margin-top:7px;font-size:11px;display:flex}.modal-event-time svg{color:var(--text-muted);flex-shrink:0}.modal-event-label{color:#fff;white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;min-height:22px;padding:4px 9px;font-size:10px;font-weight:700;line-height:1;display:inline-flex;box-shadow:0 1px 3px #0000001f}.modal-event-description{color:var(--text-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:9px 0 0;font-size:12px;line-height:1.5}.modal-events-section+.modal-training-list{margin-top:4px}.modal-training-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.modal-training{background:var(--bg-main);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:12px;padding:14px;transition:box-shadow .2s,transform .2s}.modal-training:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.modal-training-group{align-items:center;gap:7px;margin-bottom:6px;font-size:13px;font-weight:650;display:flex}.modal-training-time{color:var(--text-primary);font-size:17px;font-weight:700}.modal-training-location{color:var(--text-secondary);align-items:center;gap:5px;margin-top:6px;font-size:12px;display:flex}.modal-training-location svg{color:var(--text-muted);flex-shrink:0}.modal-action-button{width:100%;margin-top:8px}.training-cancelled{opacity:.78}.modal-empty{color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:30px 10px;display:flex}.modal-empty svg{opacity:.5;margin-bottom:10px}.modal-empty strong{color:var(--text-primary);font-size:14px}.modal-empty p{color:var(--text-secondary);margin:5px 0 0;font-size:12px}.training-plan-info{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.training-plan-info>div{background:var(--bg-main);min-width:0;color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:6px;padding:7px 9px;font-size:11px;display:inline-flex}.training-plan-info svg{color:var(--primary);flex-shrink:0}.training-plan-info span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.training-plan-field{flex-direction:column;gap:7px;margin-bottom:22px;display:flex}.training-plan-field label{color:var(--text-primary);font-size:13px;font-weight:650}.training-plan-field textarea{box-sizing:border-box;resize:vertical;background:var(--bg-main);width:100%;min-height:230px;color:var(--text-primary);border:1px solid var(--border);border-radius:10px;outline:none;padding:12px 13px;font-family:inherit;font-size:13px;line-height:1.55;transition:border-color .18s,box-shadow .18s,background .18s}.training-plan-field textarea::placeholder{color:var(--text-muted)}.training-plan-field textarea:hover:not(:disabled){border-color:var(--primary)}.training-plan-field textarea:focus{background:var(--bg-card);border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.training-plan-field textarea:disabled{opacity:.65;cursor:not-allowed}.training-plan-hint{color:var(--text-muted);font-size:10px;line-height:1.4}.training-plan-file-section{flex-direction:column;gap:9px;display:flex}.training-plan-file-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.training-plan-file-heading>div{color:var(--text-primary);align-items:center;gap:6px;font-size:13px;font-weight:650;display:flex}.training-plan-file-heading svg{color:var(--primary)}.training-plan-file-optional{color:var(--text-muted);font-size:10px}.plan-file-dropzone{box-sizing:border-box;background:var(--bg-main);border:1px dashed var(--border);cursor:pointer;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;min-height:105px;padding:18px;transition:background .18s,border-color .18s,box-shadow .18s,transform .18s;display:flex;position:relative}.plan-file-dropzone:hover{background:var(--primary-light);border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);transform:translateY(-1px)}.plan-file-dropzone.disabled{opacity:.6;cursor:not-allowed;transform:none}.plan-file-dropzone input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.plan-file-upload-icon{background:var(--primary-light);width:34px;height:34px;color:var(--primary);border-radius:10px;justify-content:center;align-items:center;margin-bottom:6px;display:flex}.plan-file-upload-title{color:var(--text-primary);font-size:12px;font-weight:650}.plan-file-upload-description{color:var(--text-muted);margin-top:2px;font-size:10px}.existing-plan-file,.selected-plan-file{background:var(--bg-main);border:1px solid var(--border);border-radius:10px;align-items:center;gap:10px;min-width:0;padding:10px;display:flex}.existing-plan-file-icon,.selected-plan-file-icon{background:var(--primary-light);width:34px;height:34px;color:var(--primary);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.existing-plan-file-info,.selected-plan-file-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.existing-plan-file-info strong,.selected-plan-file-info strong{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.existing-plan-file-info span,.selected-plan-file-info span{color:var(--text-muted);font-size:10px}.existing-plan-file-actions{align-items:center;gap:5px;display:flex}.file-icon-button{background:var(--bg-card);width:30px;height:30px;color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;padding:0;text-decoration:none;transition:background .18s,color .18s,border-color .18s;display:inline-flex}.file-icon-button:hover:not(:disabled){background:var(--primary-light);color:var(--primary);border-color:var(--primary)}.file-icon-button.danger:hover:not(:disabled){color:var(--danger);border-color:var(--danger);background:#ef44441a}.file-icon-button:disabled{opacity:.5;cursor:not-allowed}.removed-plan-file{color:var(--danger);background:#ef444414;border:1px solid #ef444433;border-radius:9px;align-items:center;gap:7px;padding:9px 10px;font-size:11px;display:flex}.removed-plan-file svg{flex-shrink:0}.removed-plan-file span{flex:1}.removed-plan-file button{color:var(--danger);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:10px;font-weight:700}.removed-plan-file button:hover{text-decoration:underline}.training-plan-error{color:var(--danger);background:#ef444414;border:1px solid #ef444433;border-radius:9px;margin-top:16px;padding:10px 12px;font-size:11px;line-height:1.45}.modal-footer{background:var(--bg-card);border-top:1px solid var(--border);flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;padding:13px 18px;display:flex}.modal-footer .btn{min-width:105px}@media (width<=1100px){.dashboard-grid{grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr)}.upcoming-item{flex-wrap:wrap}.upcoming-main{flex-basis:100%;min-width:calc(100% - 1px)}.upcoming-time{margin-left:17px}}@media (width<=900px){.dashboard{padding:14px}.dashboard-header h1{font-size:21px}.dashboard-grid{grid-template-columns:1fr;gap:14px}}@media (width<=600px){.dashboard{padding:10px}.dashboard-header{align-items:flex-start;margin-bottom:16px}.dashboard-header h1{font-size:19px}.dashboard-subtitle{font-size:12px}.card{padding:14px}.calendar-grid,.calendar-weekdays{gap:3px}.calendar-day{font-size:12px}.calendar-legend{gap:9px}.quick-actions{grid-template-columns:1fr}.upcoming-item{align-items:flex-start}.upcoming-main{width:100%}.upcoming-time{margin-left:17px}.today-heading{align-items:flex-start;gap:10px}.today-card h3{font-size:16px}.today-button{margin-top:12px}.modal-overlay{align-items:flex-end;padding:8px}.modal-content{border-radius:16px 16px 12px 12px;max-height:calc(100vh - 16px)}.training-plan-modal{max-width:none}.modal-body,.modal-header{padding:14px}.modal-footer{padding:12px 14px}.training-plan-field textarea{min-height:200px}.modal-event{padding:12px}.modal-event-title{font-size:13px}}@media (width<=420px){.dashboard-header{flex-direction:column;gap:8px}.role-badge{align-self:flex-start}.calendar-day{font-size:11px}.calendar-status{width:13px;height:13px;font-size:8px;top:3px;right:3px}.calendar-status.event{width:13px;height:13px;font-size:11px}.calendar-multiple-count{bottom:3px;right:3px}.dashboard .calendar-nav>button{width:30px;height:30px}.calendar-title,.calendar-title h3{height:40px}.calendar-title svg{width:16px;height:16px}.training-plan-info{flex-direction:column}.training-plan-info>div{box-sizing:border-box;width:100%}.modal-footer{flex-direction:column-reverse}.modal-footer .btn{width:100%}.upcoming-plan-button span{display:none}.upcoming-plan-button{width:30px;padding:5px}.existing-plan-file,.selected-plan-file{align-items:flex-start}.existing-plan-file-actions{flex-shrink:0}.modal-event-description{font-size:11px}}@media (width<=600px){.today-heading{justify-content:space-between;align-items:center;gap:10px;width:100%;display:flex}.today-heading>div:first-child{flex:auto;min-width:0}.today-icon{flex:0 0 40px;justify-content:center;align-items:center;width:40px;height:40px;margin:0;display:flex}.today-button{box-sizing:border-box;text-align:center;justify-content:center;align-items:center;width:100%;height:42px;margin:12px 0 0;padding:0 14px;line-height:1;display:flex}.today-button svg{flex-shrink:0;width:16px;height:16px;margin:0;display:block}.today-button span{align-items:center;height:100%;display:inline-flex}.today-card .btn,.today-card .btn-primary{box-sizing:border-box;justify-content:center;align-items:center;min-height:42px;line-height:1;display:flex}}.student-attendance{padding:20px}.page-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.page-header h1{font-size:24px;font-weight:600}.stats-row{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);text-align:center;padding:16px}.stat-card.highlight{background:linear-gradient(135deg, var(--primary), #00c6ff);color:#fff;border:none}.stat-card.highlight .stat-value,.stat-card.highlight .stat-label{color:#fff}.stat-value{color:var(--text-primary);margin-bottom:4px;font-size:28px;font-weight:700;display:block}.stat-value.present{color:var(--success)}.stat-value.absent{color:var(--danger)}.stat-value.total{color:var(--primary)}.stat-label{color:var(--text-muted);font-size:12px}.progress-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:16px;padding:18px}.progress-header{color:var(--text-secondary);justify-content:space-between;margin-bottom:10px;font-size:14px;display:flex}.progress-bar{background:var(--bg-main);border-radius:10px;height:10px;margin-bottom:8px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--primary), #00c6ff);border-radius:10px;height:100%;transition:width .5s}.progress-labels{color:var(--text-muted);justify-content:space-between;font-size:12px;display:flex}.history-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.history-card h3{border-bottom:1px solid var(--border);margin:0;padding:16px 20px;font-size:15px}.history-header{background:var(--bg-main);color:var(--text-secondary);border-bottom:1px solid var(--border);grid-template-columns:1.2fr 2fr 1fr;padding:10px 20px;font-size:12px;font-weight:500;display:grid}.history-row{border-bottom:1px solid var(--border-light);grid-template-columns:1.2fr 2fr 1fr;align-items:center;padding:12px 20px;transition:all .15s;display:grid}.history-row:last-child{border-bottom:none}.history-row:hover{background:var(--bg-main)}.h-date{color:var(--text-secondary);font-size:13px}.h-name{font-size:14px;font-weight:500}.status-badge{border-radius:20px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-block}.status-badge.present{background:var(--success-light);color:var(--success)}.status-badge.absent{background:var(--danger-light);color:var(--danger)}@media (width<=700px){.student-attendance{padding:12px}.stats-row{grid-template-columns:1fr 1fr;gap:10px}.stat-value{font-size:22px}.history-header,.history-row{grid-template-columns:1fr 1fr;padding:10px 14px}.history-header div:nth-child(2),.history-row .h-name{display:none}}@media (width<=400px){.stats-row{grid-template-columns:1fr 1fr}.stat-value{font-size:20px}}.student-dashboard{box-sizing:border-box;width:100%;max-width:1600px;margin:0 auto;padding:20px 24px}.welcome-banner{background:linear-gradient(135deg, var(--primary), #00c6ff);border-radius:var(--radius-lg);color:#fff;box-sizing:border-box;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;width:100%;margin-bottom:20px;padding:22px 24px;display:flex}.welcome-text h1{margin-bottom:4px;font-size:22px;font-weight:700}.welcome-text p{opacity:.9;font-size:14px}.welcome-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.child-switcher{align-items:center;gap:8px;display:flex}.child-switcher select{color:#fff;cursor:pointer;background:#fff3;border:1px solid #fff6;border-radius:20px;outline:none;padding:6px 12px;font-size:13px}.child-switcher option{color:#333}.welcome-badge{white-space:nowrap;background:#fff3;border:1px solid #ffffff59;border-radius:30px;padding:7px 16px;font-size:13px;font-weight:500}.push-alert-banner{box-sizing:border-box;background:var(--bg-card);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:var(--radius-lg);flex-direction:column;gap:16px;width:100%;margin-bottom:20px;padding:18px;display:flex}.push-alert-content{align-items:flex-start;gap:14px;display:flex}.push-alert-icon{background-color:var(--primary-light);color:var(--primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.push-alert-text h3{color:var(--text-primary);margin:0 0 4px;font-size:15px;font-weight:600}.push-alert-text p{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.btn-push-activate{border-radius:var(--radius-sm);background:var(--primary);color:#fff;cursor:pointer;border:none;width:100%;padding:10px 18px;font-size:13px;font-weight:600}.dashboard-calendar-card{box-sizing:border-box;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px;width:100%!important;max-width:none!important;margin:0 0 22px!important}.dashboard-calendar-header{justify-content:center;align-items:center;gap:12px;margin-bottom:10px;display:flex}.dashboard-calendar-title{text-align:center;text-transform:capitalize;min-width:220px}.dashboard-calendar-title strong{font-size:18px;font-weight:600}.dashboard-calendar-nav{border:1px solid var(--border);background:var(--bg-main);width:36px;height:36px;color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.dashboard-calendar-nav:hover{color:var(--primary);border-color:var(--primary);background:var(--primary-light)}.dashboard-today-button{border:1px solid var(--border);background:var(--bg-main);color:var(--text-secondary);cursor:pointer;border-radius:20px;margin:0 auto 14px;padding:6px 14px;font-size:12px;display:block}.dashboard-today-button:hover{color:var(--primary);border-color:var(--primary)}.dashboard-calendar-inner{width:100%}.dashboard-calendar-weekdays,.dashboard-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.dashboard-calendar-weekdays{margin-bottom:5px}.dashboard-calendar-weekday{text-align:center;color:var(--text-muted);padding:5px;font-size:12px;font-weight:600}.dashboard-calendar-day{border-radius:var(--radius-sm);background:var(--bg-main);min-width:0;color:var(--text-primary);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;transition:background .15s,border-color .15s,transform .15s;display:flex;position:relative;height:78px!important}.dashboard-calendar-day:hover{border-color:var(--border);transform:translateY(-1px)}.dashboard-calendar-day.empty{cursor:default;background:0 0}.dashboard-calendar-day.empty:hover{border-color:#0000;transform:none}.dashboard-calendar-day-number{font-size:15px;font-weight:500}.dashboard-calendar-day.has-training{background:color-mix(in srgb, var(--calendar-group-color,var(--primary)) 13%, var(--bg-main));border-color:color-mix(in srgb, var(--calendar-group-color,var(--primary)) 35%, transparent);color:var(--calendar-group-color,var(--primary));font-weight:700}.dashboard-calendar-day.has-training-change{color:#a16207;background:#fff8db;border-color:#f2c94c;box-shadow:inset 0 0 0 1px #eab30826}.dashboard-calendar-day.has-training-change:hover{background:#fff3bd;border-color:#eab308}.dashboard-calendar-day.has-cancelled{background:#fff3cd;border-color:#eab308}.dashboard-calendar-day.has-rescheduled{background:#fff8db;border-color:#f2c94c}.dashboard-calendar-warning{color:#fff;background:#eab308;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;font-weight:800;display:flex;position:absolute;top:7px;left:7px}.dashboard-calendar-day.is-today{box-shadow:inset 0 0 0 2px var(--primary)}.dashboard-calendar-day.is-selected{box-shadow:0 0 0 2px var(--primary)}.dashboard-training-count{background:var(--calendar-group-color,var(--primary));color:#fff;border-radius:10px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:9px;display:flex;position:absolute;top:7px;right:7px}.dashboard-calendar-legend{color:var(--text-muted);justify-content:center;align-items:center;gap:20px;margin-top:14px;font-size:11px;display:flex}.dashboard-calendar-legend span{align-items:center;gap:6px;display:flex}.legend-dot{border-radius:50%;width:9px;height:9px;display:inline-block}.legend-normal{background:var(--primary)}.legend-changed{background:#eab308}.dashboard-selected-day{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.dashboard-selected-day-header{text-transform:capitalize;margin-bottom:10px;font-size:14px;font-weight:600}.dashboard-selected-trainings{flex-direction:column;gap:7px;display:flex}.dashboard-selected-training{background:var(--bg-main);border:1px solid var(--border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;transition:all .15s;display:flex}.dashboard-selected-training.is-changed{background:#fffaf0;border-color:#f2c94c}.dashboard-selected-training.is-cancelled{border-left:4px solid #eab308}.dashboard-selected-training.is-rescheduled{border-left:4px solid #f2c94c}.selected-training-main{min-width:0}.selected-training-title-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:5px;display:flex}.dashboard-selected-training strong{font-size:13px}.selected-training-meta{color:var(--text-muted);align-items:center;gap:5px;font-size:11px;display:flex}.training-status-badge{color:#a16207;letter-spacing:.3px;background:#fef3c7;border:1px solid #f2c94c;border-radius:20px;align-items:center;gap:4px;padding:3px 7px;font-weight:800;display:inline-flex;font-size:9px!important}.dashboard-attendance-present,.dashboard-attendance-absent{border-radius:20px;flex-shrink:0;padding:4px 9px;font-weight:600;font-size:10px!important}.dashboard-attendance-present{background:var(--success-light);color:var(--success)!important}.dashboard-attendance-absent{background:var(--danger-light);color:var(--danger)!important}.dashboard-selected-empty{background:var(--bg-main);border-radius:var(--radius-md);color:var(--text-muted);text-align:center;padding:12px;font-size:13px}.student-grid{box-sizing:border-box;grid-template-columns:2fr 1fr;gap:20px;width:100%;display:grid}.next-training-card{box-sizing:border-box;background:var(--bg-card);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:var(--radius-lg);width:100%;padding:20px;position:relative;overflow:hidden}.next-training-card.has-status-change{background:linear-gradient(135deg,#fffdf5 0%,#fff8db 100%);border-color:#f2c94c #f2c94c #f2c94c #eab308;border-left-style:solid;border-left-width:5px;box-shadow:0 8px 24px #eab3081a}.card-label{text-transform:uppercase;letter-spacing:.8px;color:var(--primary);margin-bottom:8px;font-size:11px;font-weight:600}.next-training-card.has-status-change .card-label{color:#a16207}.next-training-title-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.next-training-card h2{margin:0;font-size:20px}.next-training-status{color:#fff;letter-spacing:.4px;background:#eab308;border-radius:20px;flex-shrink:0;align-items:center;padding:6px 10px;font-size:10px;font-weight:800;display:inline-flex}.next-training-alert{color:#a16207;border-radius:var(--radius-md);background:#eab3081f;border:1px solid #eab3084d;align-items:center;gap:10px;margin-bottom:14px;padding:10px 12px;display:flex}.next-training-alert svg{flex-shrink:0}.next-training-alert div{flex-direction:column;gap:2px;display:flex}.next-training-alert strong{font-size:12px;font-weight:800}.next-training-alert span{color:#92400e;font-size:11px}.training-meta{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.meta-item{background:var(--bg-main);border-radius:var(--radius-sm);color:var(--text-secondary);align-items:center;gap:6px;padding:6px 12px;font-size:13px;display:flex}.next-training-card.has-status-change .meta-item{background:#fffc;border:1px solid #eab3081f}.no-training-title{color:var(--text-muted);font-size:16px!important}.no-training-button{margin-top:16px}.card{box-sizing:border-box;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;padding:18px}.card h3{align-items:center;gap:8px;margin-bottom:16px;font-size:15px;display:flex}.attendance-overview{text-align:center;flex-direction:column;align-items:center;display:flex}.attendance-overview h3{align-self:flex-start}.attendance-circle-container{margin-bottom:16px}.attendance-circle{border:7px solid var(--primary);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:96px;height:96px;display:flex}.circle-value{color:var(--primary);font-size:22px;font-weight:700;line-height:1}.circle-label{color:var(--text-muted);margin-top:2px;font-size:10px}.attendance-numbers{gap:16px;margin-bottom:16px;display:flex}.att-num{flex-direction:column;align-items:center;gap:3px;display:flex}.num{font-size:20px;font-weight:700}.num.present{color:var(--success)}.num.absent{color:var(--danger)}.num.total{color:var(--primary)}.num-label{color:var(--text-muted);font-size:11px}.recent-list{flex-direction:column;display:flex}.recent-item{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;gap:8px;padding:10px 0;display:flex}.recent-item:last-child{border-bottom:none}.recent-item-changed{border-radius:var(--radius-sm);background:#fffdf5;margin:0 -8px;padding-left:8px;padding-right:8px}.recent-info{min-width:0}.recent-title-row{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.recent-info strong{font-size:13px;display:block}.recent-date{color:var(--text-muted);margin-top:2px;font-size:11px;display:block}.recent-status{color:#a16207;background:#fef3c7;border:1px solid #f2c94c;border-radius:20px;padding:2px 6px;font-size:8px;font-weight:800}.presence-dot{white-space:nowrap;border-radius:20px;flex-shrink:0;padding:3px 9px;font-size:11px;font-weight:600}.presence-dot.present{background:var(--success-light);color:var(--success)}.presence-dot.absent{background:var(--danger-light);color:var(--danger)}.empty-history{color:var(--text-muted);font-size:14px}.shortcuts-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.shortcut-btn{background:var(--bg-main);border-radius:var(--radius-md);color:var(--text-primary);flex-direction:column;align-items:center;gap:8px;padding:16px 10px;font-size:13px;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.shortcut-btn:hover{background:var(--primary-light);color:var(--primary)}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-size:13px;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-outline{border:1px solid var(--primary);color:var(--primary);background:0 0;width:100%}.btn-outline:hover{background:var(--primary-light)}.dashboard-selected-training.has-exception{background:#fffbeb;border-color:#fcd34d}.dashboard-selected-training.is-cancelled{background:#fffbeb;border-color:#f59e0b}.dashboard-training-details{flex-wrap:wrap;gap:6px!important;display:flex!important}.dashboard-training-details>span{align-items:center;display:inline-flex!important}.dashboard-changed-value{background:#fef3c7;border:1px solid #fcd34d;border-radius:6px;align-items:center;gap:5px;padding:4px 8px;color:#92400e!important;font-weight:800!important;display:inline-flex!important}.dashboard-changed-value svg{color:#d97706}.dashboard-changed-label{background:#f59e0b;border-radius:4px;justify-content:center;align-items:center;margin-left:2px;padding:2px 5px;color:#fff!important;font-size:8px!important;font-weight:800!important;display:inline-flex!important}.dashboard-cancelled-badge{color:#fff;background:#f59e0b;border-radius:20px;flex-shrink:0;padding:5px 10px;font-size:10px;font-weight:800}.dashboard-cancelled-text{color:#b45309;margin-top:5px;font-size:11px;font-weight:700}.dashboard-exception-reason{color:#92400e;background:#fef3c7;border-left:3px solid #f59e0b;border-radius:5px;margin-top:8px;padding:7px 10px;font-size:11px}.dashboard-calendar-day.has-changed-training{color:#b45309;background:#fffbeb;border-color:#fcd34d}.dashboard-calendar-day.has-changed-training:hover{background:#fef3c7;border-color:#f59e0b}.dashboard-calendar-day.has-cancelled-training{color:#92400e;background:#fef3c7;border-color:#f59e0b}.dashboard-calendar-day.has-cancelled-training:hover{background:#fde68a;border-color:#d97706}.dashboard-calendar-status{color:#fff;background:#f59e0b;border-radius:50%;justify-content:center;align-items:center;width:17px;height:17px;font-size:10px;font-weight:800;display:flex;position:absolute;bottom:6px;right:7px}.next-training-changed{box-sizing:border-box;border-radius:var(--radius-lg);background:#fffbeb;border:2px solid #f59e0b;border-left-width:5px;width:100%;padding:18px}.next-training-cancelled{box-sizing:border-box;border-radius:var(--radius-lg);background:#fffbeb;border:2px solid #f59e0b;border-left:5px solid #d97706;width:100%;padding:18px}.next-training-alert{color:#fff;letter-spacing:.4px;background:#f59e0b;border-radius:20px;align-items:center;margin-bottom:10px;padding:6px 11px;font-size:10px;font-weight:800;display:inline-flex}.changed-meta-item{color:#92400e;background:#fef3c7;border:1px solid #fcd34d;font-weight:800}.changed-meta-item svg{color:#d97706}.changed-meta-item strong{color:#fff;background:#f59e0b;border-radius:4px;padding:2px 5px;font-size:8px;display:inline-flex}.next-training-reason{color:#92400e;background:#fef3c7;border-left:3px solid #f59e0b;border-radius:5px;margin-bottom:16px;padding:9px 11px;font-size:12px;font-weight:500}.next-training-cancelled-info{color:#92400e;background:#fef3c7;border:1px solid #fcd34d;border-radius:8px;flex-direction:column;gap:5px;margin-bottom:16px;padding:12px 14px;font-size:13px;display:flex}.next-training-cancelled-info strong{font-weight:800}.next-training-cancelled-info span{font-size:12px}.next-training-plan{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-main);margin-top:18px;margin-bottom:18px;overflow:hidden}.next-training-plan-header{border-bottom:1px solid var(--border);background:var(--bg-card);align-items:center;gap:10px;padding:12px 14px;display:flex}.next-training-plan-icon{background:var(--primary-light);width:34px;height:34px;color:var(--primary);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.next-training-plan-header>div:last-child{flex-direction:column;gap:2px;display:flex}.next-training-plan-header strong{color:var(--text-primary);font-size:13px}.next-training-plan-header span{color:var(--text-muted);font-size:10px}.next-training-plan-text{color:var(--text-primary);white-space:pre-wrap;padding:14px;font-size:13px;line-height:1.6}.next-training-plan-file{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--primary);align-items:center;gap:8px;margin:0 14px 14px;padding:9px 11px;font-size:12px;font-weight:600;text-decoration:none;transition:all .15s;display:flex}.next-training-plan-file:hover{background:var(--primary-light);border-color:var(--primary)}.next-training-plan-file span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.next-training-no-plan{border:1px dashed var(--border);border-radius:var(--radius-sm);color:var(--text-muted);align-items:center;gap:7px;margin-top:16px;margin-bottom:16px;padding:9px 11px;font-size:11px;display:flex}@media (width<=1200px){.student-dashboard{max-width:100%;padding:18px 20px}.dashboard-calendar-day{height:70px!important}.student-grid{gap:16px}}@media (width>=768px){.push-alert-banner{flex-direction:row;justify-content:space-between;align-items:center}.btn-push-activate{flex-shrink:0;width:auto}}@media (width<=900px){.student-grid{grid-template-columns:1fr}}@media (width<=600px){.student-dashboard{width:100%;max-width:100%;padding:10px}.dashboard-calendar-card{padding:9px;width:100%!important;max-width:none!important;margin-bottom:14px!important}.dashboard-calendar-header{gap:7px}.dashboard-calendar-title{flex:1;min-width:0}.dashboard-calendar-title strong{font-size:14px}.dashboard-calendar-nav{width:31px;height:31px}.dashboard-calendar-weekdays,.dashboard-calendar-grid{gap:3px}.dashboard-calendar-day{border-radius:6px;height:52px!important}.dashboard-calendar-day-number{font-size:12px}.dashboard-calendar-weekday{padding:3px 1px;font-size:9px}.dashboard-training-count{min-width:14px;height:14px;font-size:8px;top:2px;right:2px}.dashboard-calendar-warning{width:14px;height:14px;font-size:8px;top:2px;left:2px}.dashboard-selected-training{padding:9px}.dashboard-selected-training strong{font-size:12px}.dashboard-attendance-present,.dashboard-attendance-absent{padding:3px 7px;font-size:9px!important}.welcome-banner{padding:16px}.welcome-text h1{font-size:18px}.welcome-actions{width:100%}.welcome-badge{font-size:11px}.next-training-card{padding:16px}.next-training-card h2{font-size:17px}.next-training-title-row{align-items:flex-start}.next-training-status{padding:5px 7px;font-size:8px}.next-training-alert{padding:9px}.training-meta{gap:6px}.meta-item{padding:5px 10px;font-size:12px}.attendance-circle{width:80px;height:80px}.circle-value,.num{font-size:18px}.card{padding:14px}.push-alert-banner{gap:12px;padding:14px}.push-alert-content{gap:10px}.dashboard-calendar-legend{gap:12px}.next-training-plan{margin-top:14px;margin-bottom:14px}.next-training-plan-header{padding:10px 11px}.next-training-plan-text{padding:11px;font-size:12px}.next-training-plan-file{margin:0 11px 11px}.dashboard-training-details{flex-direction:column;align-items:flex-start}.dashboard-selected-training.has-exception,.dashboard-selected-training.is-cancelled{align-items:flex-start}.next-training-cancelled-info{padding:10px 11px}}@media (width<=400px){.dashboard-calendar-day{height:48px!important}.dashboard-calendar-day-number{font-size:11px}.dashboard-training-count{min-width:13px;height:13px;font-size:7px}.dashboard-selected-training{flex-direction:column;align-items:flex-start}.dashboard-attendance-present,.dashboard-attendance-absent{align-self:flex-end}.next-training-title-row{flex-direction:column}.next-training-status{align-self:flex-start}}@media (width>=1400px){.student-dashboard{max-width:1700px}.dashboard-calendar-card{padding:22px!important}.dashboard-calendar-weekdays,.dashboard-calendar-grid{gap:7px}.dashboard-calendar-day{height:90px!important}.dashboard-calendar-day-number{font-size:16px}.dashboard-calendar-weekday{font-size:12px}.dashboard-training-count{min-width:19px;height:19px;top:8px;right:8px}.dashboard-calendar-warning{width:19px;height:19px;top:8px;left:8px}}.student-trainings{box-sizing:border-box;color:#0f172a;width:100%;max-width:1180px;margin:0 auto;padding:28px 24px 60px}.page-header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;display:flex}.page-header-content{min-width:0}.page-header h1{color:#0f172a;letter-spacing:-.025em;margin:0;font-size:28px;font-weight:800;line-height:1.2}.page-subtitle{color:#64748b;margin:7px 0 0;font-size:14px;line-height:1.5}.group-badge{border:1px solid;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;min-height:34px;padding:7px 12px;font-size:12px;font-weight:700;display:inline-flex}.info-banner{background:var(--group-bg,#f8fafc);color:#475569;border:1px solid #e2e8f0;border-radius:12px;align-items:flex-start;gap:10px;margin-bottom:20px;padding:12px 14px;font-size:13px;line-height:1.55;display:flex}.info-banner svg{color:var(--group-color,#3b82f6);flex-shrink:0;margin-top:1px}.calendar-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;margin-bottom:22px;padding:20px;position:relative;box-shadow:0 4px 16px #0f172a0a}.calendar-header{justify-content:center;align-items:center;min-height:40px;margin-bottom:18px;display:flex;position:relative}.calendar-title{color:#0f172a;align-items:center;gap:8px;font-size:16px;display:flex}.calendar-title svg{color:#64748b}.calendar-nav{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:9px;justify-content:center;align-items:center;width:36px;height:36px;padding:0;transition:background .15s,color .15s,border-color .15s;display:flex;position:absolute}.calendar-nav:first-child{left:0}.calendar-nav:last-child{right:0}.calendar-nav:hover{color:#0f172a;background:#f8fafc;border-color:#cbd5e1}.today-button{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;height:32px;padding:0 11px;font-size:12px;font-weight:700;transition:background .15s,border-color .15s,color .15s;position:absolute;top:20px;right:68px}.today-button:hover{color:#0f172a;background:#f8fafc;border-color:#cbd5e1}.calendar-weekdays,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.calendar-weekdays{margin-bottom:6px}.calendar-weekday{color:#94a3b8;text-transform:uppercase;justify-content:center;align-items:center;height:30px;font-size:11px;font-weight:800;display:flex}.calendar-day{aspect-ratio:1/.82;color:#334155;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;min-width:0;padding:0;transition:background .15s,border-color .15s,color .15s,transform .15s;display:flex;position:relative}.calendar-day:not(.empty):hover{background:#f8fafc;border-color:#e2e8f0}.calendar-day.empty{cursor:default}.calendar-day-number{border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:600;display:flex}.calendar-day.has-training{background:var(--group-bg);border-color:color-mix(in srgb, var(--group-border) 25%, transparent);color:var(--group-color)}.calendar-day.has-training .calendar-day-number{font-weight:800}.calendar-day.is-today .calendar-day-number{box-shadow:inset 0 0 0 2px #e2e8f0}.calendar-day.is-selected{background:var(--group-bg,#eff6ff);border-color:var(--group-border,#3b82f6)}.calendar-day.is-selected .calendar-day-number{background:var(--group-color,#3b82f6);color:#fff;box-shadow:none}.training-count{background:var(--group-color,#3b82f6);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:9px;font-weight:800;display:flex;position:absolute;top:4px;right:5px}.selected-day{border-top:1px solid #e2e8f0;margin-top:18px;padding-top:18px}.selected-day-header{color:#0f172a;margin-bottom:12px;font-size:14px}.selected-empty{color:#94a3b8;text-align:center;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px;padding:18px;font-size:13px}.selected-trainings{flex-direction:column;gap:10px;display:flex}.toggle-tabs{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;gap:3px;margin-bottom:14px;padding:3px;display:inline-flex}.toggle-btn{color:#64748b;cursor:pointer;background:0 0;border:0;border-radius:7px;min-height:34px;padding:0 13px;font-size:12px;font-weight:700;transition:background .15s,color .15s,box-shadow .15s}.toggle-btn:hover{color:#334155}.toggle-btn.active{color:#0f172a;background:#fff;box-shadow:0 1px 3px #0f172a14}.trainings-list{flex-direction:column;gap:10px;display:flex}.training-row{width:100%;color:inherit;text-align:left;cursor:pointer;box-sizing:border-box;background:#fff;border:1px solid #e2e8f0;border-radius:14px;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:18px;padding:15px 17px;transition:border-color .15s,box-shadow .15s,transform .15s,background .15s;display:grid;position:relative}.training-row:hover{border-color:#cbd5e1;transform:translateY(-1px);box-shadow:0 5px 18px #0f172a12}.training-row.upcoming{border-left:3px solid var(--group-color,#3b82f6)}.training-row.past{background:#fcfcfd}.training-date-block{background:var(--group-bg,#f8fafc);width:64px;min-height:62px;color:var(--group-color,#3b82f6);border-radius:11px;flex-direction:column;justify-content:center;align-items:center;display:flex}.t-day{font-size:24px;font-weight:800;line-height:1}.t-month{text-transform:uppercase;margin-top:4px;font-size:11px;font-weight:800}.training-details{min-width:0}.training-details h3{color:#0f172a;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:15px;font-weight:750;line-height:1.35;overflow:hidden}.training-tags{flex-wrap:wrap;gap:6px;margin-top:7px;display:flex}.tag{color:#64748b;white-space:nowrap;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;align-items:center;gap:5px;max-width:100%;padding:4px 7px;font-size:10px;font-weight:600;display:inline-flex}.tag svg{flex-shrink:0}.training-plan-indicator{background:var(--group-bg);color:var(--group-color);border-radius:999px;align-items:center;gap:5px;margin-top:8px;padding:4px 8px;font-size:11px;font-weight:700;display:inline-flex}.training-status-wrapper{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:6px;display:flex}.training-status{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;min-height:25px;padding:4px 8px;font-size:10px;font-weight:800;display:inline-flex}.status-upcoming{color:#2563eb;background:#eff6ff}.status-past{color:#64748b;background:#f1f5f9}.attendance-status{white-space:nowrap;border-radius:999px;align-items:center;gap:4px;min-height:25px;padding:4px 8px;font-size:10px;font-weight:800;display:inline-flex}.attendance-present{color:#059669;background:#ecfdf5}.attendance-absent{color:#dc2626;background:#fef2f2}.empty-state{color:#94a3b8;text-align:center;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:14px;justify-content:center;align-items:center;min-height:160px;padding:25px;font-size:13px;display:flex}.training-plan-overlay{z-index:9999;box-sizing:border-box;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a8c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.training-plan-modal{box-sizing:border-box;background:#fff;border:1px solid #e2e8f0;border-radius:18px;width:min(680px,100%);max-height:min(760px,90vh);overflow-y:auto;box-shadow:0 24px 70px #0f172a40}.training-plan-header{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:flex-start;gap:20px;padding:22px 24px 16px;display:flex}.training-plan-label{color:var(--group-color);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;font-size:12px;font-weight:800;display:block}.training-plan-header h2{color:#0f172a;margin:0;font-size:22px;line-height:1.25}.training-plan-header p{color:#64748b;margin:6px 0 0;font-size:14px}.training-plan-close{color:#64748b;cursor:pointer;background:#f8fafc;border:0;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;padding:0;transition:background .15s,color .15s;display:flex}.training-plan-close:hover{color:#0f172a;background:#f1f5f9}.training-plan-meta{background:#f8fafc;border-bottom:1px solid #e2e8f0;flex-wrap:wrap;gap:8px;padding:14px 24px;display:flex}.training-plan-meta span{color:#475569;background:#fff;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:6px;padding:6px 9px;font-size:12px;font-weight:600;display:inline-flex}.training-plan-content{padding:22px 24px 26px}.training-plan-section-title{color:var(--group-color);align-items:center;gap:8px;margin-bottom:12px;font-size:15px;font-weight:800;display:flex}.training-plan-text-body{color:#334155;white-space:normal;overflow-wrap:anywhere;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:16px;font-size:14px;line-height:1.65}.training-plan-file{color:#0f172a;background:#fff;border:1px solid #e2e8f0;border-radius:12px;align-items:center;gap:12px;margin-top:18px;padding:13px 14px;text-decoration:none;transition:background .15s,border-color .15s,transform .15s;display:flex}.training-plan-file:hover{border-color:var(--group-color);background:#f8fafc;transform:translateY(-1px)}.training-plan-file-icon{background:var(--group-bg);width:42px;height:42px;color:var(--group-color);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.training-plan-file-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.training-plan-file-info strong{color:#1e293b;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.training-plan-file-info span{color:#64748b;font-size:12px}.training-plan-empty{color:#94a3b8;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:260px;padding:30px;display:flex}.training-plan-empty strong{color:#475569;font-size:15px}.training-plan-empty span{color:#94a3b8;font-size:13px}@media (width<=760px){.student-trainings{padding:20px 16px 45px}.page-header{align-items:flex-start;gap:12px}.page-header h1{font-size:24px}.calendar-card{padding:15px}.today-button{margin:-4px auto 14px;display:block;position:static}.calendar-header{margin-bottom:10px}.calendar-day{aspect-ratio:1/.9}.calendar-day-number{width:29px;height:29px;font-size:12px}.training-count{top:2px;right:2px}.training-row{grid-template-columns:54px minmax(0,1fr);gap:12px;padding:12px}.training-date-block{width:54px;min-height:56px}.t-day{font-size:21px}.training-status-wrapper{flex-flow:wrap;grid-column:2;justify-content:flex-start;align-items:center}.training-details h3{font-size:14px}.tag{font-size:10px}}@media (width<=480px){.student-trainings{padding:16px 12px 35px}.page-header{flex-direction:column}.group-badge{align-self:flex-start}.info-banner{font-size:12px}.calendar-weekdays,.calendar-grid{gap:3px}.calendar-card{padding:11px}.calendar-day{border-radius:8px}.calendar-day-number{width:27px;height:27px}.training-count{display:none}.toggle-tabs{box-sizing:border-box;width:100%;display:flex}.toggle-btn{flex:1}.training-tags{gap:4px}.tag{padding:3px 5px}.training-plan-indicator{font-size:10px}.training-plan-overlay{align-items:flex-end;padding:0}.training-plan-modal{border-radius:18px 18px 0 0;width:100%;max-height:92vh}.training-plan-header{padding:18px 18px 14px}.training-plan-header h2{font-size:19px}.training-plan-meta{padding:12px 18px}.training-plan-content{padding:18px}}@media (width<=360px){.calendar-weekday{font-size:9px}.calendar-day-number{width:24px;height:24px;font-size:11px}.training-row{grid-template-columns:48px minmax(0,1fr);gap:9px}.training-date-block{width:48px}.training-tags .tag:nth-child(3){text-overflow:ellipsis;max-width:100%;overflow:hidden}}.training-row.has-exception{border-top-color:#fde68a;border-bottom-color:#fde68a}.training-row.cancelled{background:snow;border-color:#fecaca}.training-row.cancelled:hover{border-color:#fca5a5}.tag-exception{color:#a16207;background:#fffbeb;border-color:#fde68a}.training-exception{flex-wrap:wrap;align-items:center;gap:7px;margin-top:8px;display:flex}.exception-badge{color:#a16207;background:#fffbeb;border:1px solid #fde68a;border-radius:999px;align-items:center;gap:5px;min-height:23px;padding:4px 8px;font-size:10px;font-weight:800;display:inline-flex}.exception-badge svg{flex-shrink:0}.cancelled-exception{align-items:flex-start}.cancelled-badge{color:#dc2626;background:#fef2f2;border-color:#fecaca}.exception-reason{color:#64748b;font-size:11px;line-height:1.4}.status-cancelled{color:#dc2626;background:#fef2f2}.calendar-day.has-cancelled{border-color:#fecaca}.calendar-day.has-cancelled .calendar-day-number{color:#dc2626}.calendar-day.has-exception:not(.has-cancelled){border-color:#fde68a}.calendar-exception-dot{border-radius:50%;width:5px;height:5px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.exception-dot{background:#eab308}.cancelled-dot{background:#ef4444}.modal-exception{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:11px;margin:16px 24px 0;padding:13px 14px}.modal-exception-cancelled{color:#991b1b;background:#fef2f2;border-color:#fecaca}.modal-exception-title{align-items:center;gap:7px;font-size:13px;font-weight:800;display:flex}.modal-exception-title svg{flex-shrink:0}.modal-exception-changes{flex-wrap:wrap;gap:8px;margin-top:9px;display:flex}.modal-exception-changes span{color:#a16207;background:#fff;border:1px solid #fde68a;border-radius:7px;align-items:center;gap:5px;padding:5px 8px;font-size:11px;font-weight:700;display:inline-flex}.modal-exception p{color:inherit;margin:8px 0 0;font-size:12px;line-height:1.5}@media (width<=760px){.training-exception{flex-direction:column;align-items:flex-start}.exception-reason{max-width:100%}.modal-exception{margin-left:18px;margin-right:18px}}@media (width<=480px){.training-exception{gap:5px}.exception-badge{font-size:9px}.exception-reason{font-size:10px}.modal-exception{margin-top:12px;padding:11px 12px}.modal-exception-title{font-size:12px}.modal-exception-changes{gap:5px}.modal-exception-changes span{font-size:10px}}.topbar{background:var(--bg-topbar);border-bottom:1px solid var(--border);z-index:200;justify-content:space-between;align-items:center;height:60px;padding:0 20px;display:flex;position:sticky;top:0}.topbar-logo .logo-img{width:auto;height:50px}.topbar-menu{align-items:center;gap:8px;display:flex}.topbar-icon{border-radius:var(--radius-sm);background:var(--bg-main);border:1px solid var(--border);cursor:pointer;width:36px;height:36px;color:var(--text-secondary);justify-content:center;align-items:center;text-decoration:none;transition:all .2s;display:flex;position:relative}.topbar-icon:hover{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.notification-badge{background:var(--danger);color:#fff;border:2px solid var(--bg-topbar);box-sizing:border-box;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:700;line-height:1;display:flex;position:absolute;top:-7px;right:-7px}.topbar-user{align-items:center;gap:8px;display:flex}.avatar{background:linear-gradient(135deg, var(--primary), #00c6ff);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;font-weight:600;display:flex}.user-name{color:var(--text-primary);font-size:14px;font-weight:500}.user-info{flex-direction:column;justify-content:center;line-height:1.15;display:flex}.user-role-badge{color:var(--primary);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:700}.logout-btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;padding:7px 14px;font-size:13px;transition:all .2s;display:inline-flex}.logout-btn:hover{background:var(--danger-light);border-color:var(--danger);color:var(--danger)}.hamburger{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-main);cursor:pointer;width:36px;height:36px;color:var(--text-secondary);justify-content:center;align-items:center;display:none}.notification-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999;background:#0f172a73;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.notification-modal{background:var(--bg-card);width:100%;max-width:600px;max-height:80vh;box-shadow:var(--shadow-lg);border-radius:16px;overflow:hidden}.notification-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.notification-header h3{color:var(--text-primary);margin:0;font-size:18px}.notification-close{cursor:pointer;width:34px;height:34px;color:var(--text-secondary);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:flex}.notification-close:hover{background:var(--bg-main);color:var(--text-primary)}.notification-list{max-height:calc(80vh - 70px);overflow-y:auto}.notification-item{border-bottom:1px solid var(--border);padding:16px 20px;transition:background .2s}.notification-item:hover{background:var(--bg-main)}.notification-title{color:var(--text-primary);margin-bottom:6px;font-weight:600}.notification-message{color:var(--text-secondary);margin-bottom:8px;font-size:14px;line-height:1.5}.notification-date{color:var(--text-muted);font-size:12px}.notification-message-link{color:inherit;text-decoration:none;display:block}.notification-message-notice{background:var(--bg-main)}.notification-message-notice:hover{background:var(--primary-light)}.topbar-child-selector{background:var(--bg-main);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:6px;margin-right:4px;padding:4px 10px;transition:border-color .2s;display:flex}.topbar-child-selector:hover{border-color:var(--primary)}.child-selector-icon{color:var(--primary);flex-shrink:0}.child-select-dropdown{color:var(--text-primary);cursor:pointer;background:0 0;border:none;outline:none;padding-right:4px;font-size:13px;font-weight:600}@media (width<=768px){.topbar{height:56px;padding:0 14px}.topbar-logo .logo-img{height:38px}.user-name,.logout-btn span{display:none}.logout-btn{padding:7px 10px}.hamburger{display:flex}.topbar-icon.settings-icon{display:none}.notification-modal{max-width:100%;max-height:90vh}.topbar-child-selector{margin-right:0;padding:4px 6px}.child-select-dropdown{text-overflow:ellipsis;max-width:100px;font-size:12px}.user-info{display:none}}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border);flex-shrink:0;width:220px;min-height:calc(100vh - 60px);padding:16px 10px;transition:transform .25s}.sidebar-nav{flex-direction:column;gap:2px;display:flex}.nav-item{border-radius:var(--radius-md);color:var(--text-secondary);align-items:center;gap:12px;padding:11px 14px;text-decoration:none;transition:background .2s,color .2s;display:flex}.nav-item:hover{background:var(--bg-main);color:var(--text-primary)}.nav-item.active{background:var(--primary-light);color:var(--primary);font-weight:500}.nav-icon{flex-shrink:0}.nav-label{font-size:14px}.nav-item.has-unread{color:var(--danger);font-weight:600}.nav-item.has-unread .nav-icon{color:var(--danger)}.nav-item.has-unread:hover,.nav-item.active.has-unread{background:var(--danger-light);color:var(--danger)}.message-unread-badge{background:var(--danger);color:#fff;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;min-width:20px;height:20px;margin-left:auto;padding:0 6px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.sidebar-overlay{z-index:150;background:#0006;display:none;position:fixed;inset:0}@media (width<=768px){.sidebar{width:220px;height:calc(100vh - 56px);min-height:unset;z-index:160;position:fixed;top:56px;left:0;transform:translate(-100%);box-shadow:4px 0 20px #00000026}.sidebar.open{transform:translate(0)}.sidebar-overlay.open{display:block}}:root{--primary:#019cde;--primary-hover:#0180b8;--primary-light:#e6f6fc;--bg-main:#f5f7fa;--bg-card:#fff;--bg-sidebar:#fff;--bg-topbar:#fff;--text-primary:#1a1a2e;--text-secondary:#6b7280;--text-muted:#9ca3af;--border:#e5e7eb;--border-light:#f0f0f0;--success:#10b981;--success-light:#d1fae5;--danger:#ef4444;--danger-light:#fee2e2;--warning:#f59e0b;--warning-light:#fef3c7;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px #00000012;--shadow-lg:0 10px 25px #0000001a;--radius-sm:6px;--radius-md:12px;--radius-lg:16px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-main);color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5}.app{min-height:100vh}.app-body{display:flex}.app-main{flex:1;min-height:calc(100vh - 70px);overflow-y:auto}
