:root{--blue:#183a68;--blue-light:#1f4d8a;--accent:#e8a020;--text:#1a1a2e;--text-muted:#5a6375;--bg:#f4f6f9;--border:#dde2ea;--sans:"Segoe UI", system-ui, sans-serif;font:15px/150% var(--sans);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*,:before,:after{box-sizing:border-box}body{margin:0}#root{min-height:100vh}.app{background:var(--bg);min-height:100vh;color:var(--text);flex-direction:column;display:flex}.admin-link{color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:.75rem;text-decoration:underline}.admin-link:hover{color:var(--blue)}.app-header{background:var(--blue);color:#fff;z-index:100;padding:0 1.5rem;position:sticky;top:0;box-shadow:0 2px 6px #0000004d}.header-inner{flex-direction:column;max-width:960px;margin:0 auto;display:flex}.header-row-top{align-items:stretch;gap:0;display:flex}.logo-text{letter-spacing:.05em;color:#ffffffd9;align-items:center;margin-right:1.5rem;padding:1rem 0;font-size:1.1rem;display:flex}.logo-text strong{color:#fff;margin-left:.25rem}.discipline-tabs{align-items:stretch;gap:.25rem;display:flex}.discipline-tab{color:#ffffffbf;cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;padding:0 1.25rem;font-size:.9rem;font-weight:600;transition:color .15s,border-color .15s}.discipline-tab:hover{color:#fff}.discipline-tab--active{color:#fff;border-bottom-color:var(--accent)}.class-tabs{scrollbar-width:none;gap:.35rem;padding:6px 0;display:flex;overflow-x:auto}.class-tabs::-webkit-scrollbar{display:none}.class-tab{color:#ffffffbf;cursor:pointer;background:0 0;border:1px solid #fff6;border-radius:999px;padding:3px 14px;font-size:.82rem;transition:background .15s,border-color .15s,color .15s}.class-tab:hover{color:#fff;background:#ffffff1a;border-color:#ffffffb3}.class-tab--active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}.app-main{flex-direction:column;flex:1;gap:1.25rem;width:100%;max-width:960px;margin:0 auto;padding:1.5rem;display:flex}.empty-state{border:1px solid var(--border);text-align:center;color:var(--text-muted);background:#fff;border-radius:8px;padding:3rem 2rem}.empty-state h2{color:var(--text);margin:0 0 .5rem;font-size:1.1rem}.empty-state p{margin:0;font-size:.9rem;line-height:1.6}.app-footer{text-align:right;color:var(--text-muted);padding:12px 24px;font-size:.75rem}@media (width<=640px){.app-header{padding:0 1rem}.logo-text{padding:.75rem 0;font-size:1rem}.app-main{padding:1rem}}.class-view{flex-direction:column;gap:1rem;display:flex}.class-view-header{border:1px solid var(--border);background:#fff;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.1rem 1.25rem;display:flex}.class-view-meta{flex:1;min-width:0}.class-description{color:var(--text-muted);margin:0 0 .75rem;font-size:.88rem;line-height:1.55}.class-progress-summary{color:var(--text-muted);justify-content:space-between;margin-bottom:.3rem;font-size:.8rem;display:flex}.class-progress-pct{color:var(--blue);font-weight:700}.class-progress-bar-wrap{background:#e4e8f0;border-radius:999px;height:6px;overflow:hidden}.class-progress-bar{background:var(--blue);border-radius:999px;height:100%;transition:width .3s}.btn-reset{color:var(--blue);border:1px solid var(--blue);cursor:pointer;white-space:nowrap;background:#fff;border-radius:6px;align-self:flex-start;padding:.4rem .9rem;font-size:.82rem;font-weight:600;transition:background .15s}.btn-reset:hover{background:#eef3f9}.moment-list{flex-direction:column;gap:.5rem;display:flex}.moment-card{border:1px solid var(--border);background:#fff;border-radius:8px;transition:box-shadow .15s;overflow:hidden}.moment-card:hover{box-shadow:0 2px 8px #00000012}.moment-card--complete{border-color:#b6d9b8}.moment-card--complete .moment-card-progress-bar{background:#2e7d32}.moment-card-header{cursor:pointer;text-align:left;background:0 0;border:none;grid-template-rows:auto auto;grid-template-columns:1fr auto;align-items:center;gap:.35rem .75rem;width:100%;padding:.85rem 1rem;display:grid}.moment-card-title{grid-area:1/1;align-items:baseline;gap:.75rem;display:flex}.moment-card-name{color:var(--text);font-size:.95rem;font-weight:600}.moment-card-progress-label{color:var(--text-muted);font-size:.75rem}.moment-card-progress-bar-wrap{background:#e4e8f0;border-radius:999px;grid-area:2/1;height:4px;overflow:hidden}.moment-card-progress-bar{background:var(--accent);border-radius:999px;height:100%;transition:width .3s}.moment-card-chevron{color:var(--text-muted);grid-area:1/2/3;align-self:center;font-size:.65rem}.moment-card-body{border-top:1px solid var(--border)}.moment-sections-nav{border-bottom:1px solid var(--border);background:#fafbfd;gap:0;display:flex}.section-tab{color:var(--text-muted);cursor:pointer;text-align:center;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:.55rem .5rem;font-size:.78rem;font-weight:600;transition:color .15s,border-color .15s}.section-tab:hover{color:var(--text)}.section-tab--active{color:var(--blue);border-bottom-color:var(--blue)}.moment-section{padding:1rem 1.1rem}.moment-text{color:var(--text);margin:0;font-size:.88rem;line-height:1.65}.training-parts{counter-reset:parts;flex-direction:column;gap:.85rem;margin:0;padding:0;list-style:none;display:flex}.training-part{counter-increment:parts;grid-template-columns:1.5rem 1fr;gap:.2rem .6rem;display:grid}.training-part:before{content:counter(parts);color:#fff;background:var(--blue);border-radius:999px;grid-row:1/3;justify-content:center;align-self:start;align-items:center;width:1.4rem;height:1.4rem;margin-top:.1rem;font-size:.75rem;font-weight:700;display:flex}.training-part-title{color:var(--text);font-size:.88rem;line-height:1.4}.training-part-desc{color:var(--text-muted);grid-column:2;margin:0;font-size:.84rem;line-height:1.6}.checklist{flex-direction:column;gap:.1rem;margin:0;padding:0;list-style:none;display:flex}.checklist-item{border-radius:5px;transition:background .1s}.checklist-item--done{background:#f0faf0}.checklist-label{cursor:pointer;color:var(--text);align-items:flex-start;gap:.65rem;padding:.5rem .4rem;font-size:.87rem;line-height:1.5;display:flex}.checklist-item--done .checklist-label{color:var(--text-muted);text-decoration:line-through}.checklist-checkbox{width:1rem;height:1rem;accent-color:var(--blue);cursor:pointer;flex-shrink:0;margin-top:.15rem}.admin-view{flex-direction:column;flex:1;min-height:100vh;display:flex}.admin-toolbar{color:#fff;z-index:200;background:#111827;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.5rem;display:flex;position:sticky;top:0}.admin-toolbar-title{letter-spacing:.04em;opacity:.9;font-size:.9rem;font-weight:700}.admin-toolbar-actions{flex-wrap:wrap;gap:.5rem;display:flex}.toolbar-btn{color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #ffffff40;border-radius:5px;padding:.35rem .85rem;font-size:.8rem;font-weight:600;transition:background .15s}.toolbar-btn:hover{background:#fff3}.toolbar-btn--danger{color:#faa;border-color:#dc3c3c99}.toolbar-btn--danger:hover{background:#dc3c3c40}.toolbar-done-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:5px;padding:.35rem .85rem;font-size:.8rem;font-weight:700;transition:background .15s}.toolbar-done-btn:hover{background:#d4911a}.admin-panel{flex-direction:column;gap:1.25rem;width:100%;max-width:860px;margin:0 auto;padding:1.5rem;display:flex}.admin-section-title{color:var(--blue);margin:0;font-size:1rem;font-weight:700}.admin-breadcrumb{color:var(--text-muted);align-items:center;gap:.4rem;font-size:.82rem;display:flex}.breadcrumb-btn{color:var(--blue);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.breadcrumb-sep{opacity:.5}.admin-discipline{border:1px solid var(--border);background:#fff;border-radius:8px;overflow:hidden}.admin-discipline-header{background:var(--blue);align-items:center;gap:.75rem;padding:.6rem 1rem;display:flex}.admin-discipline-header .editor-input{color:#fff;background:#ffffff26;border-color:#ffffff4d;font-size:.95rem;font-weight:700}.admin-discipline-header .editor-input::placeholder{color:#ffffff80}.admin-discipline-header .sort-btn--delete{color:#ffc8c8cc}.admin-discipline-header .sort-btn--delete:hover{color:#fff}.admin-class-list{flex-direction:column;gap:.4rem;padding:.75rem 1rem;display:flex}.admin-class-row{border:1px solid var(--border);background:#fafbfd;border-radius:5px;align-items:center;gap:.5rem;padding:.4rem .5rem;display:flex}.admin-class-row-controls{gap:.2rem;display:flex}.admin-class-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.88rem;font-weight:600;overflow:hidden}.admin-class-meta{color:var(--text-muted);white-space:nowrap;font-size:.75rem}.editor-field{flex-direction:column;gap:.3rem;display:flex}.editor-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.75rem;font-weight:700}.editor-input{border:1px solid var(--border);font-size:.9rem;font:inherit;color:var(--text);background:#fff;border-radius:6px;width:100%;padding:.45rem .7rem}.editor-input--inline{flex:1;width:auto}.editor-input:focus,.editor-textarea:focus{outline:2px solid var(--blue);outline-offset:1px}.editor-textarea{border:1px solid var(--border);font:inherit;color:var(--text);resize:vertical;background:#fff;border-radius:6px;width:100%;padding:.45rem .7rem;font-size:.88rem;line-height:1.55}.sortable-list{flex-direction:column;gap:.4rem;display:flex}.sortable-row{border:1px solid var(--border);background:#fafbfd;border-radius:6px;align-items:flex-start;gap:.5rem;padding:.6rem .7rem;display:flex}.sortable-row-content{flex-direction:column;flex:1;gap:.35rem;min-width:0;display:flex}.sortable-row-actions{flex-direction:column;flex-shrink:0;gap:.2rem;display:flex}.sort-btn{border:1px solid var(--border);color:var(--blue);cursor:pointer;background:#eef3f9;border-radius:4px;justify-content:center;align-items:center;width:1.6rem;height:1.6rem;padding:0;font-size:.65rem;transition:background .1s;display:flex}.sort-btn:hover:not(:disabled){background:#dce8f5}.sort-btn:disabled{opacity:.3;cursor:not-allowed}.sort-btn--delete{color:#c62828;background:#fff0f0;border-color:#f5c6c6}.sort-btn--delete:hover{background:#fde2e2}.add-btn{border:1px dashed var(--border);color:var(--blue);cursor:pointer;text-align:left;background:0 0;border-radius:6px;padding:.45rem .9rem;font-size:.83rem;font-weight:600;transition:background .15s,border-color .15s}.add-btn:hover{border-color:var(--blue);background:#eef3f9}.add-btn--discipline{margin-top:.25rem}.moment-editor{flex-direction:column;gap:1.1rem;display:flex}.part-editor{flex-direction:column;gap:.35rem;width:100%;display:flex}.moment-row-editor{align-items:center;gap:.75rem;width:100%;display:flex}.moment-row-name{color:var(--text);flex:1;font-size:.88rem}.edit-inline-btn{border:1px solid var(--border);color:var(--blue);cursor:pointer;white-space:nowrap;background:#eef3f9;border-radius:5px;padding:.25rem .65rem;font-size:.78rem;font-weight:600;transition:background .1s}.edit-inline-btn:hover{background:#dce8f5}
