*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f8f7fa;--surface: #ffffff;--surface2: #ecebf1;--surface3: #e2e0e8;--border: #e2e0e8;--border2: #c9c7d1;--text: #211f29;--text2: #4c4a57;--text3: #77747f;--accent: #5b3fa8;--accent-dim: #ece7f7;--on-accent: #ffffff;--red: #b3452f;--red-dim: #f6e3dd;--amber: #8a6d1d;--amber-dim: #f2ecd7;--green: #2e7d4f;--green-dim: #ddefe3;--blue: #5b3fa8;--blue-dim: #ece7f7;--radius: 10px;--mono: "DM Mono", monospace;--sans: "DM Sans", sans-serif}[data-theme=dark]{--bg: #232227;--surface: #2e2d34;--surface2: #2c2b31;--surface3: #3a3941;--border: #3a3941;--border2: #4a4854;--text: #f0eef4;--text2: #b8b5c2;--text3: #85828f;--accent: #a78bfa;--accent-dim: #3a3352;--on-accent: #26203a;--red: #e08573;--red-dim: #45302b;--amber: #d9b968;--amber-dim: #3c3524;--green: #7cc9a0;--green-dim: #27392f;--blue: #a78bfa;--blue-dim: #3a3352}html,body{height:100%;background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-text-size-adjust:100%}#root{height:100%}.app{display:flex;flex-direction:column;height:100dvh;max-width:680px;margin:0 auto;background:var(--bg)}.nav{display:flex;background:var(--surface);border-top:1px solid var(--border);border-left:1px solid var(--border);border-right:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;padding-bottom:env(safe-area-inset-bottom,0)}.nav-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 4px 12px;border:none;background:none;color:var(--text3);font-family:var(--mono);font-size:9px;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:color .15s}.nav-btn.active{color:var(--accent)}.nav-btn svg{stroke:currentColor}.page{flex:1;overflow-y:auto;padding:0 0 8px;-webkit-overflow-scrolling:touch}.page-header{padding:20px 16px 12px;display:flex;align-items:center;gap:10px}.page-title{font-size:22px;font-weight:700;letter-spacing:-.02em}.page-sub{font-family:var(--mono);font-size:11px;color:var(--text3);margin-top:2px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:0 12px 8px;overflow:hidden}.card-header{padding:12px 14px;display:flex;align-items:center;justify-content:space-between}.card-title{font-weight:600;font-size:14px}.card-body{padding:0 14px 14px}.athlete-row{display:flex;align-items:center;padding:12px 14px;gap:12px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .1s}.athlete-row:last-child{border-bottom:none}.athlete-row:active{background:var(--surface2)}.athlete-avatar{width:38px;height:38px;border-radius:50%;background:var(--surface3);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:var(--accent);flex-shrink:0}.athlete-info{flex:1;min-width:0}.athlete-name{font-weight:600;font-size:14px}.athlete-meta{font-family:var(--mono);font-size:10px;color:var(--text3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot-green{background:var(--green)}.dot-amber{background:var(--amber)}.dot-red{background:var(--red)}.athlete-avatar.archived{color:var(--text3)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:4px;font-family:var(--mono);font-size:10px;font-weight:500}.badge-green{background:var(--green-dim);color:var(--green)}.badge-red{background:var(--red-dim);color:var(--red)}.badge-amber{background:var(--amber-dim);color:var(--amber)}.badge-blue{background:var(--blue-dim);color:var(--blue)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 14px;border-radius:8px;border:none;font-family:var(--sans);font-size:13px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s;text-decoration:none}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-ghost{background:var(--surface2);color:var(--text)}.btn-danger{background:var(--red-dim);color:var(--red)}.btn-full{width:100%;justify-content:center}.btn-sm{padding:6px 10px;font-size:12px}.form-group{margin-bottom:14px}.form-label{display:block;font-family:var(--mono);font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}.form-input{width:100%;background:var(--surface2);border:1px solid var(--border2);border-radius:7px;color:var(--text);font-family:var(--sans);font-size:14px;padding:9px 12px;outline:none;transition:border-color .15s;-webkit-appearance:none}.form-input:focus{border-color:var(--accent)}.form-input::placeholder{color:var(--text3)}textarea.form-input{resize:vertical;min-height:70px}.section-label{font-family:var(--mono);font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px}.todo-item{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border)}.todo-item:last-child{border-bottom:none}.todo-check{width:20px;height:20px;border-radius:5px;border:2px solid var(--border2);background:none;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .15s;margin-top:1px}.todo-check.checked{background:var(--accent);border-color:var(--accent)}.todo-text{flex:1;font-size:14px;line-height:1.4}.todo-text.done{text-decoration:line-through;color:var(--text3)}.todo-text.overdue{color:var(--red)}.todo-time{font-family:var(--mono);font-size:10px;font-weight:500}.todo-tag{font-family:var(--mono);font-size:9px;color:var(--text3);margin-top:2px}.note-item{padding:10px 0;border-bottom:1px solid var(--border)}.note-item:last-child{border-bottom:none}.note-date{font-family:var(--mono);font-size:10px;color:var(--text3);margin-bottom:3px}.note-text{font-size:13px;line-height:1.5;color:var(--text2)}.list-item{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}.list-item:last-child{border-bottom:none}.profile-hero{padding:20px 16px 14px;display:flex;align-items:center;gap:14px}.profile-avatar{width:56px;height:56px;border-radius:50%;background:var(--surface3);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:22px;color:var(--accent);flex-shrink:0}.profile-name{font-size:20px;font-weight:700;letter-spacing:-.01em}.profile-age{font-family:var(--mono);font-size:11px;color:var(--text3);margin-top:2px}.contact-bar{margin:0 12px 8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px}.contact-info{flex:1}.contact-label{font-family:var(--mono);font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.08em}.contact-val{font-size:13px;font-weight:600;margin-top:2px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal{background:var(--surface);border-radius:18px;width:100%;max-width:480px;max-height:85dvh;overflow-y:auto;padding:24px 20px}.modal-title{font-size:17px;font-weight:700;margin-bottom:16px}.empty{text-align:center;padding:36px 20px;color:var(--text3);font-size:13px}.scroll-pad{height:20px}.sticky-header{background:var(--surface);border-bottom:1px solid var(--border);border-left:1px solid var(--border);border-right:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius);position:sticky;top:0;z-index:10}.sub-tabs{display:flex;overflow-x:auto;justify-content:center;padding:0 12px;gap:2px;scrollbar-width:none;-ms-overflow-style:none}.sub-tabs::-webkit-scrollbar{display:none}.sub-tab{flex:none;padding:6px 12px;border:none;background:none;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;color:var(--text3);border-bottom:2px solid transparent;transition:color .15s}.sub-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.icon-btn{background:none;border:none;color:var(--text3);cursor:pointer;padding:4px;display:flex;align-items:center}.hidden{display:none}.toggle-btn{position:relative;width:44px;height:26px;border-radius:13px;border:none;background:var(--surface3);cursor:pointer;flex-shrink:0;transition:background .2s}.toggle-btn:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--text3);transition:transform .2s,background .2s}.toggle-btn.on{background:var(--accent)}.toggle-btn.on:after{transform:translate(18px);background:var(--on-accent)}
