*{box-sizing:border-box;margin:0;padding:0}body{background:#0e0f13;color:#e8e9ed;font-family:system-ui,-apple-system,sans-serif}.app{min-height:100vh}.topbar{display:flex;justify-content:space-between;align-items:center;padding:14px 22px;border-bottom:1px solid #23252e;gap:18px;flex-wrap:wrap}.logo{font-size:22px;font-weight:700;color:#7c5cff;cursor:pointer;letter-spacing:1px}.topbar .logo{flex:1}.user{font-size:14px;color:#9a9cab;white-space:nowrap}main{padding:24px 24px 84px;max-width:720px;margin:0 auto}main.has-rest-bar{padding-bottom:154px}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:45;display:flex;background:#171821;border-top:1px solid #23252e;padding-bottom:env(safe-area-inset-bottom,0)}.bottom-nav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px 10px;color:#6b6d7a;text-decoration:none;font-size:11px;font-weight:600}.bottom-nav a.active,.bottom-nav a:hover{color:#7c5cff}.bn-icon{font-size:20px;line-height:1}.bn-label{letter-spacing:.02em}.center{display:flex;flex-direction:column;align-items:center;padding-top:12vh;gap:18px}.card{display:flex;flex-direction:column;gap:12px;background:#171821;border:1px solid #23252e;border-radius:12px;padding:24px;width:320px}.card label{font-size:13px;color:#9a9cab}input,select,textarea{background:#0e0f13;border:1px solid #2c2e3a;border-radius:8px;color:#e8e9ed;font-size:16px;padding:10px 12px;font-family:inherit;width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:#7c5cff}button{background:#7c5cff;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:15px;font-weight:600;padding:10px 16px}button:disabled{opacity:.5;cursor:default}button.link{background:none;color:#7c5cff;font-weight:400;font-size:13px;padding:0}button.link.danger{color:#ff6b6b}button.ghost{background:#171821;border:1px solid #2c2e3a;color:#e8e9ed}button.ghost.small{font-size:13px;padding:6px 12px;font-weight:500}button.icon{background:#171821;border:1px solid #2c2e3a;color:#e8e9ed;width:32px;height:32px;padding:0;font-size:14px;display:inline-flex;align-items:center;justify-content:center}button.icon.danger{color:#ff6b6b}a.btn-link{color:#7c5cff;text-decoration:none;font-weight:600;font-size:14px}button.btn-link{background:none;color:#7c5cff;font-weight:600;font-size:14px;padding:0}.hint{color:#9a9cab;font-size:13px}.error{color:#ff6b6b;font-size:14px}main>section{margin-bottom:32px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}.section-head h2{font-size:18px;color:#c9cbd6}.cards{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.workout-card,.session-card{display:flex;justify-content:space-between;align-items:center;gap:14px;background:#171821;border:1px solid #23252e;border-radius:12px;padding:14px 18px;text-decoration:none;color:inherit}.workout-card h3,.session-card h3{font-size:16px;margin-bottom:4px}.workout-card-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.workout-card-actions button{padding:8px 14px;font-size:13px}.session-card-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-size:13px;color:#9a9cab;flex-shrink:0}.badge{display:inline-block;border-radius:999px;font-size:11px;font-weight:600;padding:2px 9px}.badge.in-progress{background:#f5c54226;color:#f5c542}.badge.done{background:#5dd28a26;color:#5dd28a}.exercise-list{display:flex;flex-direction:column;gap:8px;margin:14px 0}.exercise-row{display:flex;align-items:center;gap:14px;background:#171821;border:1px solid #23252e;border-radius:12px;padding:10px 14px;flex-wrap:wrap}.exercise-row .form{flex:1}.exercise-thumb,.picker-thumb{width:52px;height:52px;border-radius:8px;object-fit:cover;background:#0e0f13;flex-shrink:0}.img-placeholder{display:flex;align-items:center;justify-content:center;font-size:22px;background:#0e0f13;border:1px solid #23252e}.exercise-row-body{flex:1;min-width:120px;display:flex;flex-direction:column;gap:2px;cursor:pointer}.exercise-row-actions{display:flex;gap:6px;flex-shrink:0}.field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#9a9cab;width:80px}.field input{padding:6px 8px;font-size:14px}.title-input{font-size:22px;font-weight:700;background:transparent;border:1px solid transparent;padding:6px 8px;flex:1;min-width:160px}.title-input:hover,.title-input:focus{border-color:#2c2e3a}.form{display:flex;flex-direction:column;gap:8px;background:#171821;border:1px solid #23252e;border-radius:12px;padding:16px;margin-bottom:14px}.form label{font-size:13px;color:#9a9cab;margin-top:4px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}.check{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:#c9cbd6;cursor:pointer;-webkit-user-select:none;user-select:none;width:auto}.check input{width:16px;height:16px;margin:0;accent-color:#7c5cff;cursor:pointer}.media-manager{display:flex;flex-direction:column;gap:8px;margin-top:4px}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px}.media-tile{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;background:#0e0f13;border:1px solid #23252e}.media-thumb{width:100%;height:100%;object-fit:cover}.media-remove{position:absolute;top:4px;right:4px;width:26px;height:26px;font-size:12px;background:#0e0f13bf;border-color:#2c2e3a}.upload-btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;width:fit-content}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:flex-end;justify-content:center;z-index:50}@media (min-width: 640px){.modal-overlay{align-items:center}}.modal{background:#171821;border:1px solid #23252e;border-radius:16px 16px 0 0;padding:18px;width:100%;max-width:480px;max-height:85vh;overflow-y:auto;display:flex;flex-direction:column;gap:12px}@media (min-width: 640px){.modal{border-radius:16px}}.modal-head{display:flex;justify-content:space-between;align-items:center}.picker-list{display:flex;flex-direction:column;gap:6px;max-height:40vh;overflow-y:auto}.picker-item{display:flex;align-items:center;gap:12px;background:#0e0f13;border:1px solid #23252e;border-radius:10px;padding:8px 10px;text-align:left;font-weight:400}.picker-item:hover{border-color:#7c5cff}.picker-item-body{display:flex;flex-direction:column;gap:2px}.session-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}.session-meta{display:flex;align-items:center;gap:10px;flex-basis:100%}.session-actions{display:flex;gap:10px;margin-left:auto}.exercise-card{background:#171821;border:1px solid #23252e;border-radius:12px;padding:14px;margin-bottom:14px}.exercise-card-head{display:flex;align-items:center;gap:14px}.exercise-info{margin-top:10px;padding-top:10px;border-top:1px solid #23252e;display:flex;flex-direction:column;gap:8px}.exercise-info .field{width:140px}.sets-table{margin-top:12px;display:flex;flex-direction:column;gap:6px}.sets-header,.set-row{display:grid;grid-template-columns:28px 90px 1fr 56px 32px 28px;gap:8px;align-items:center}.sets-table.bodyweight .sets-header,.sets-table.bodyweight .set-row{grid-template-columns:28px 90px 70px 1fr 56px 32px 28px}.sets-header span{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#6b6d7a;text-align:center}.set-row select,.set-row input{padding:6px;font-size:14px;text-align:center}.set-num{text-align:center;font-weight:700;color:#9a9cab}.set-row.completed{background:#5dd28a14;border-radius:8px}.set-row.completed .set-num{color:#5dd28a}.weight-input{display:flex;gap:4px}.weight-input input{flex:1;min-width:0}.unit-toggle{background:#0e0f13;border:1px solid #2c2e3a;color:#9a9cab;font-size:11px;font-weight:700;padding:0 8px;text-transform:uppercase;flex-shrink:0}.set-done{width:18px;height:18px;margin:0 auto;accent-color:#5dd28a;cursor:pointer}.rest-bar{position:fixed;left:0;right:0;bottom:58px;background:#171821;border-top:1px solid #2c2e3a;z-index:40}.rest-bar-fill{height:3px;background:#7c5cff;transition:width 1s linear}.rest-bar-content{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;max-width:720px;margin:0 auto;font-weight:600;flex-wrap:wrap;gap:10px}.rest-bar-actions{display:flex;gap:8px}
