:root{color:#17211f;background:#f7faf9;font-family:Inter,ui-rounded,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;background:#f7faf9}button,input,select,textarea{font:inherit;letter-spacing:0}button,label{-webkit-tap-highlight-color:transparent}button{min-height:38px;border:1px solid #d9e5e2;border-radius:8px;background:#fff;color:#17211f;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 12px;cursor:pointer}button:hover,label:hover{border-color:#9fc8c1}.primary{background:#0f766e;color:#fff;border-color:#0f766e;font-weight:700}.danger{color:#b42318;border-color:#f1c4bf}.full{width:100%}.fit{width:fit-content}.app-shell{min-height:100vh;display:grid;grid-template-columns:380px minmax(0,1fr)}.sidebar{border-right:1px solid #dfe8e5;background:#fff;padding:22px;display:flex;flex-direction:column;gap:16px}.brand,.athlete-title,.toolbar,.detail-actions,.record-bar,.section-title,.copybar,.photo-actions,.settings-actions{display:flex;align-items:center;gap:10px}.brand-mark{width:46px;height:46px;border-radius:8px;background:#0f766e;color:#fff;display:grid;place-items:center;font-weight:900}h1,h2,h3,p{margin:0}h1{font-size:20px;line-height:1.15}h2{font-size:28px;line-height:1.15}h3{font-size:18px}p,small,.brand p,.record-bar span{color:#60716c}.toolbar{flex-wrap:wrap}.toolbar .primary{flex:1}.search{border:1px solid #d9e5e2;border-radius:8px;height:44px;display:flex;align-items:center;gap:8px;padding:0 12px;background:#fbfdfc}.search input,.filters select,input,select,textarea{border:1px solid #d9e5e2;border-radius:8px;background:#fff;min-height:40px;padding:9px 10px;color:#17211f;min-width:0}.search input{border:0;background:transparent;flex:1;padding:0;outline:0}textarea{min-height:86px;resize:vertical}.filters{display:grid;grid-template-columns:1fr 1fr;gap:10px}.person-list{display:flex;flex-direction:column;gap:10px;overflow:auto;padding-right:2px}.person-row{width:100%;display:grid;grid-template-columns:46px 1fr auto;text-align:left;gap:12px;padding:12px;min-height:74px}.person-row.selected{background:#eef8f6;border-color:#7dc0b7}.person-row span{min-width:0}.person-row strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-row small{display:block;margin-top:4px}.person-row em{font-style:normal;font-size:12px;color:#60716c;text-align:right}.avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#e8f3f0;color:#0f766e;overflow:hidden;flex:none}.avatar.large{width:72px;height:72px}.avatar img{width:100%;height:100%;object-fit:cover}.workspace{min-width:0;padding:24px}.detail-header{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:22px}.detail-actions{flex-wrap:wrap;justify-content:flex-end}.content-grid{display:grid;grid-template-columns:240px minmax(0,1fr);gap:18px;align-items:start}.timeline,.record-panel,.block,.compare{background:#fff;border:1px solid #dfe8e5;border-radius:8px;padding:14px}.timeline{display:flex;flex-direction:column;gap:10px}.timeline-item{justify-content:space-between;text-align:left}.timeline-item.selected{border-color:#0f766e;background:#eef8f6}.record-panel{min-width:0}.record-bar{justify-content:space-between;border-bottom:1px solid #edf2f0;padding-bottom:12px}.record-bar>div{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.record-bar>div:first-child{flex-direction:column;align-items:flex-start;gap:2px}.tabs{display:flex;gap:8px;overflow:auto;padding:14px 0}.tabs button{text-transform:capitalize;min-width:106px}.tabs .active{background:#17211f;color:#fff;border-color:#17211f}.stack{display:flex;flex-direction:column;gap:14px}.photo-grid,.compare-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.photo-card{border:1px solid #e2ebe8;border-radius:8px;padding:10px}.photo-frame{width:100%;aspect-ratio:3 / 4;padding:0;overflow:hidden;background:#f2f7f5;color:#66827b}.photo-frame img,.compare-pair img{width:100%;height:100%;object-fit:cover}.photo-frame span{display:grid;place-items:center;gap:8px}.photo-actions{margin-top:8px;justify-content:space-between}.photo-actions label,.avatar-edit label,.photo-upload-row label{min-height:38px;border:1px solid #d9e5e2;border-radius:8px;padding:8px 10px;display:inline-flex;align-items:center;gap:7px;cursor:pointer}.compare .section-title{justify-content:space-between;margin-bottom:12px}.compare-pair strong{display:block;margin-bottom:8px}.compare-pair div{display:grid;grid-template-columns:1fr 1fr;gap:8px;min-height:180px}.compare-pair span{display:grid;place-items:center;background:#f2f7f5;color:#60716c;border-radius:8px;padding:16px;text-align:center}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.metric{background:#f3faf8;border:1px solid #dcece8;border-radius:8px;padding:14px}.metric span{display:block;color:#60716c;font-size:13px;margin-bottom:5px}.metric strong{font-size:20px;overflow-wrap:anywhere}.data-table{width:100%;border-collapse:collapse;background:#fff}.data-table th,.data-table td{text-align:left;border-bottom:1px solid #e7efec;padding:11px 8px}.delta{font-weight:800}.delta.up{color:#b54708}.delta.down{color:#087443}.delta.neutral{color:#60716c}.block .section-title{justify-content:space-between;margin-bottom:10px;flex-wrap:wrap}.edit-row{display:grid;grid-template-columns:minmax(120px,1.3fr) minmax(100px,.8fr) 42px;gap:8px;margin-top:8px}.edit-row.workout{grid-template-columns:1.3fr .7fr .6fr .8fr 42px}.edit-row.superset{border-left:4px solid #f97316;padding-left:8px}.copybar{background:#f7fbfa;border:1px solid #deebe8;border-radius:8px;padding:10px;flex-wrap:wrap}.copybar select{flex:1;min-width:220px}.day-title{font-weight:800;max-width:260px}.modal-backdrop,.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#0c14127a;z-index:20;display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:18px}.modal{width:min(920px,100%);max-height:calc(100vh - 36px);margin:auto 0;overflow:auto;background:#fff;border-radius:8px;border:1px solid #dfe8e5;box-shadow:0 24px 70px #0f2d2733}.modal header{position:sticky;top:0;display:flex;justify-content:space-between;align-items:center;padding:16px 18px;background:#fff;border-bottom:1px solid #edf2f0;z-index:1}.app-error{min-height:100vh;display:grid;place-items:center;align-content:center;gap:12px;padding:24px;text-align:center}.app-error p{color:#b42318}.form{padding:18px;display:flex;flex-direction:column;gap:14px}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.fields textarea{grid-column:1 / -1}.avatar-edit,.photo-upload-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.measure-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.measure-grid label{display:flex;flex-direction:column;gap:6px;color:#43514e;font-size:13px}.measure-grid.checks label{flex-direction:row;align-items:center;background:#f8fbfa;border:1px solid #e3ece9;border-radius:8px;padding:9px}.privacy{background:#f0f8f6;border:1px solid #cfe9e4;border-radius:8px;padding:14px;color:#25433e}.empty-canvas{min-height:60vh;display:grid;place-items:center;align-content:center;gap:12px;text-align:center;color:#60716c}.empty-canvas.compact{min-height:320px}.empty-state{text-align:center;padding:18px 6px;color:#60716c}.lightbox img{max-width:94vw;max-height:86vh;object-fit:contain;border-radius:8px}.lightbox button{position:fixed;top:18px;right:18px}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid #dfe8e5}.person-list{max-height:38vh}.content-grid{grid-template-columns:1fr}.timeline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.timeline .full{grid-column:1 / -1}.detail-header{flex-direction:column}.detail-actions{justify-content:flex-start}}@media(max-width:680px){.sidebar,.workspace{padding:14px}h2{font-size:23px}.toolbar,.filters,.photo-grid,.compare-grid,.stats,.fields,.measure-grid,.timeline{grid-template-columns:1fr}.toolbar{display:grid;grid-template-columns:1fr repeat(3,44px)}.person-row{grid-template-columns:42px minmax(0,1fr)}.person-row em{grid-column:2;text-align:left}.record-bar{align-items:flex-start;flex-direction:column}.tabs button{min-width:92px}.edit-row,.edit-row.workout,.measure-grid.checks{grid-template-columns:1fr}.modal-backdrop{padding:10px}.modal{max-height:calc(100vh - 20px)}}@supports (height: 100dvh){.modal{max-height:calc(100dvh - 36px)}@media(max-width:680px){.modal{max-height:calc(100dvh - 20px)}}}@media print{.sidebar,.detail-actions,.timeline,.tabs,button{display:none!important}.app-shell,.content-grid{display:block}.workspace{padding:0}.record-panel{border:0}}
